From e8267bcebfa0212ec3f455aeaf75a342408afb14 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Thu, 14 Feb 2008 22:44:08 +0100 Subject: Lay the groundwork for super calls. darcs-hash:6b92675f9ae403584bc82cd69df0404f1fde70bb --- Lisp/libobjcl.lisp | 1 + Lisp/method-invocation.lisp | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'Lisp') diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp index aacedab..0858cb9 100644 --- a/Lisp/libobjcl.lisp +++ b/Lisp/libobjcl.lisp @@ -39,6 +39,7 @@ (defcfun ("objcl_invoke_with_types" %objcl-invoke-with-types) :pointer (argc :int) + (superclass-for-send-super :pointer) (return_typespec :string) (arg_typespecs (:array :string)) (return_value (:pointer :void)) diff --git a/Lisp/method-invocation.lisp b/Lisp/method-invocation.lisp index 2389a9f..c90b37d 100644 --- a/Lisp/method-invocation.lisp +++ b/Lisp/method-invocation.lisp @@ -216,6 +216,7 @@ easier to use with __apply__. argc (+ 2 (length args))) (low-level-invoke receiver selector + (null-pointer) method-return-typestring method-return-type method-arg-typestrings @@ -264,6 +265,7 @@ easier to use with __apply__. (mapcar #'ad-hoc-value->typespec args)))) (low-level-invoke receiver (selector method-name) + (null-pointer) (print-typespec-to-string return-typespec) return-typespec (mapcar #'print-typespec-to-string arg-typespecs) @@ -317,7 +319,8 @@ easier to use with __apply__. (otherwise (typespec-primary-type typespec)))) -(defun low-level-invoke (receiver selector return-typestring return-type +(defun low-level-invoke (receiver selector superclass-pointer-for-send-super + return-typestring return-type arg-typestrings arg-types argc args) (let ((return-c-type (typespec->c-type return-type)) (arg-c-types (mapcar #'typespec->c-type arg-types))) @@ -422,6 +425,7 @@ easier to use with __apply__. (otherwise arg))))))) (let* ((error-cell (%objcl-invoke-with-types (- argc 2) + superclass-pointer-for-send-super return-typestring objc-arg-typestrings objc-return-value-cell -- cgit v1.2.3