diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-19 18:56:15 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-02-19 18:56:15 +0100 |
commit | 7a58d0e28aecbf2044f543999909625cb99752d9 (patch) | |
tree | 130eff93c54ca79279263679cdbe8742330decef | |
parent | 9dde84278b34334a0689cd3eee0d098007996f81 (diff) |
Make objcl_add_method capable of adding methods to registered classes.
darcs-hash:a29d29425ab1e91101b691224b5ee591b8237961
-rw-r--r-- | Lisp/libobjcl.lisp | 3 | ||||
-rw-r--r-- | Objective-C/libobjcl.h | 3 | ||||
-rw-r--r-- | Objective-C/libobjcl.m | 8 |
3 files changed, 10 insertions, 4 deletions
diff --git a/Lisp/libobjcl.lisp b/Lisp/libobjcl.lisp index 7c4137d..6296c46 100644 --- a/Lisp/libobjcl.lisp +++ b/Lisp/libobjcl.lisp @@ -167,7 +167,8 @@ (argc :int) (return-typespec :string) (arg-typespecs (:array :string)) - (signature :string)) + (signature :string) + (registered-p :int)) (defcfun ("objcl_finalise_class" %objcl-finalise-class) :void (class :pointer)) diff --git a/Objective-C/libobjcl.h b/Objective-C/libobjcl.h index b5cefce..b3e1a3a 100644 --- a/Objective-C/libobjcl.h +++ b/Objective-C/libobjcl.h @@ -203,7 +203,8 @@ objcl_add_method (Class class, int argc, const char *return_typespec, const char *arg_typespecs[], - const char *signature); + const char *signature, + int registered_p); void objcl_finalise_class (Class class); diff --git a/Objective-C/libobjcl.m b/Objective-C/libobjcl.m index 8489891..1e70a37 100644 --- a/Objective-C/libobjcl.m +++ b/Objective-C/libobjcl.m @@ -807,14 +807,18 @@ objcl_add_method (Class class, int argc, const char *return_typespec, const char *arg_typespecs[], - const char *signature) + const char *signature, + int registered_p) { IMP imp; imp = objcl_create_imp (callback, argc, return_typespec, arg_typespecs); #ifdef __NEXT_RUNTIME__ - preclass_addMethod (class, method_name, imp, signature); + if (registered_p) + class_addMethod (class, method_name, imp, signature); + else + preclass_addMethod (class, method_name, imp, signature); #else NSString *class_name; struct ObjCLMethod **methods; |