summaryrefslogtreecommitdiff
path: root/Lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-03-04 15:02:43 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-03-04 15:02:43 +0100
commit0880bd6ab8539d43cde12ca556ea46b2ee0f0518 (patch)
tree48838e9a58216ef020ae676518e95bc2f2762566 /Lisp
parent8bda6a9a7a3d48613383cf5f3cfb06f27cdbfd10 (diff)
Fix objcl_create_imp.
darcs-hash:259fe285f4dde3cb5d6a964593524f7e9619faf4
Diffstat (limited to 'Lisp')
-rw-r--r--Lisp/libobjcl.lisp6
-rw-r--r--Lisp/method-definition.lisp5
2 files changed, 6 insertions, 5 deletions
diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp
index 394672e..797ee1e 100644
--- a/Lisp/libobjcl.lisp
+++ b/Lisp/libobjcl.lisp
@@ -45,9 +45,9 @@
(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))
+ (return-typespec :string)
+ (arg-typespecs (:array :string))
+ (return-value (:pointer :void))
(argv (:array (:pointer :void))))
(defcfun ("objcl_find_class" %objcl-find-class) :pointer
diff --git a/Lisp/method-definition.lisp b/Lisp/method-definition.lisp
index 1ed0b9c..187da3c 100644
--- a/Lisp/method-definition.lisp
+++ b/Lisp/method-definition.lisp
@@ -123,10 +123,11 @@
,cffi-lambda-list
(,(generic-function-name gf) ,@arguments)))))
(let ((callback (get-callback callback-name)))
- (with-foreign-object (arg-typestring-buffer :string (length arg-typestrings))
+ (with-foreign-object (arg-typestring-buffer :string
+ (- (length arg-typestrings) 2))
(with-foreign-string-pool (register-temp allocate-temp)
(loop for i from 0
- for typestring in arg-typestrings
+ for typestring in (cddr arg-typestrings)
do (setf (mem-aref arg-typestring-buffer :string i)
(allocate-temp typestring)))
(%objcl-add-method (pointer-to class)