summaryrefslogtreecommitdiff
path: root/Lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-02-14 22:44:08 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-02-14 22:44:08 +0100
commite8267bcebfa0212ec3f455aeaf75a342408afb14 (patch)
treebd55aac92b2a41949acf1a0eab3202a0de0f938b /Lisp
parent8c5f730bddb827eaca240ed97bf396250caee30c (diff)
Lay the groundwork for super calls.
darcs-hash:6b92675f9ae403584bc82cd69df0404f1fde70bb
Diffstat (limited to 'Lisp')
-rw-r--r--Lisp/libobjcl.lisp1
-rw-r--r--Lisp/method-invocation.lisp6
2 files changed, 6 insertions, 1 deletions
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