disable method redefinition--is it really necessary when the class is being redefined?

db4
Joe Groff 2008-09-08 22:32:19 -07:00
parent 3b003551f9
commit d4835de50b
1 changed files with 12 additions and 12 deletions

View File

@ -51,17 +51,17 @@ IN: cocoa.subclassing
! : verify-method-type ( class sel imp types -- class sel imp types )
! 4 ndup nip (verify-method-type) ;
: (redefine-objc-method) ( class method -- )
init-method ! verify-method-type
drop
[ class_getInstanceMethod ] dip method_setImplementation drop ;
: redefine-objc-methods ( imeth name -- )
dup class-exists? [
objc_getClass swap [ (redefine-objc-method) ] with each
] [
2drop
] if ;
! : (redefine-objc-method) ( class method -- )
! init-method ! verify-method-type
! drop
! [ class_getInstanceMethod ] dip method_setImplementation drop ;
!
! : redefine-objc-methods ( imeth name -- )
! dup class-exists? [
! objc_getClass swap [ (redefine-objc-method) ] with each
! ] [
! 2drop
! ] if ;
SYMBOL: +name+
SYMBOL: +protocols+
@ -71,7 +71,7 @@ SYMBOL: +superclass+
clone [
prepare-methods
+name+ get "cocoa.classes" create drop
+name+ get 2dup redefine-objc-methods swap [
+name+ get swap [
+protocols+ get , +superclass+ get , +name+ get , ,
\ (define-objc-class) ,
] [ ] make import-objc-class