diff options
-rw-r--r-- | Lisp/libobjcl.lisp | 16 | ||||
-rw-r--r-- | Lisp/memory-management.lisp | 3 | ||||
-rw-r--r-- | Objective-C/libobjcl.m | 10 |
3 files changed, 21 insertions, 8 deletions
diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp index 47c39a9..e9e5f3c 100644 --- a/Lisp/libobjcl.lisp +++ b/Lisp/libobjcl.lisp @@ -763,13 +763,15 @@ separating parts by hyphens works nicely in all of the `:INVERT`, (loop for element in list for i from 0 do (setf (mem-aref array type i) element)))) - (loop for (array . list) in (list (cons %protocol-names protocol-names) - (cons %ivar-names ivar-names) - (cons %ivar-typestrings ivar-typestrings)) - do (fill-foreign-array-from-list array - (mapcar #'allocate-temporary-string - list) - :pointer))) + (loop for (array . list) + in (list (cons %protocol-names protocol-names) + (cons %ivar-names ivar-names) + (cons %ivar-typestrings ivar-typestrings)) + do (fill-foreign-array-from-list + array + (mapcar #'allocate-temporary-string + list) + :pointer))) (%objcl-create-class class-name (pointer-to superclass) (length protocol-names) diff --git a/Lisp/memory-management.lisp b/Lisp/memory-management.lisp index b625b8f..d603092 100644 --- a/Lisp/memory-management.lisp +++ b/Lisp/memory-management.lisp @@ -75,7 +75,8 @@ ;; By the way, is using the return value of SETF considered bad style? (let* ((constructor (case class ((exception) #'make-condition) - (otherwise #'make-instance)))(*in-make-pointer-wrapper-p* t) + (otherwise #'make-instance))) + (*in-make-pointer-wrapper-p* t) (new-wrapper (apply constructor ;; We do not create direct instances of ID ;; anymore. Instead, we look for the diff --git a/Objective-C/libobjcl.m b/Objective-C/libobjcl.m index 43190f6..7b69d46 100644 --- a/Objective-C/libobjcl.m +++ b/Objective-C/libobjcl.m @@ -734,6 +734,14 @@ objcl_create_class (const char *class_name, argv[3 + 2*i + 1] = (void *) &ivar_typespecs[i]; } + TRACE (@"Arg 0: %s", *((char **) argv[0])); + TRACE (@"Arg 1: %s", *((char **) argv[1])); + TRACE (@"Arg 2: %d", *((int *) argv[2])); + for (i = 3; i < 3 + 2*ivar_number; i++) + { + TRACE (@"Arg %d: %s", i, *((char **) argv[i])); + } + status = ffi_prep_cif (&cif, FFI_DEFAULT_ABI, ivar_number*2 + 3, &ffi_type_uchar, arg_types); if (status != FFI_OK) { @@ -742,7 +750,9 @@ objcl_create_class (const char *class_name, userInfo: nil] raise]; } + TRACE (@"ObjcUtilities_new_class"); ffi_call (&cif, FFI_FN (ObjcUtilities_new_class), &return_value, argv); + TRACE (@"ObjcUtilities_new_class end"); NSString *ns_class_name = [NSString stringWithUTF8String: class_name]; [method_lists setObject: |