public
Description: The Nu programming language.
Homepage: http://programming.nu
Clone URL: git://github.com/timburks/nu.git
Quick fix for a problem in (NSObject set:).

The Objective-C conversion of set: was not correctly handling selectors.
timburks (author)
Tue Jun 10 18:58:35 -0700 2008
commit  c929ef38143d6ee23b5b1545f489fb8302d75539
tree    83d3a98e86e6b801dc7a902badb94205659d3b70
parent  2ce16c3fd0175abd9d8b8997d743d69a4a732ca2
...
437
438
439
440
 
441
442
443
...
703
704
705
706
 
 
 
 
 
 
707
708
709
...
437
438
439
 
440
441
442
443
...
703
704
705
 
706
707
708
709
710
711
712
713
714
0
@@ -437,7 +437,7 @@ limitations under the License.
0
 - (void) nuDealloc
0
 {
0
     NSArray *ivarsToRelease = nu_ivarsToRelease([self class]);
0
- if (ivarsToRelease) {
0
+ if (ivarsToRelease) {
0
         int count = [ivarsToRelease count];
0
         for (int i = 0; i < count; i++) {
0
             NSString *ivarName = [ivarsToRelease objectAtIndex:i];
0
@@ -703,7 +703,12 @@ limitations under the License.
0
         id value = [[cursor cdr] car];
0
         id label = ([key isKindOfClass:[NuSymbol class]] && [key isLabel]) ? [key labelName] : key;
0
         if ([label isEqualToString:@"action"] && [self respondsToSelector:@selector(setAction:)]) {
0
- [self setAction:value];
0
+ #ifdef DARWIN
0
+ SEL selector = sel_registerName([value cStringUsingEncoding:NSUTF8StringEncoding]);
0
+ #else
0
+ SEL selector = sel_register_name([value cStringUsingEncoding:NSUTF8StringEncoding]);
0
+ #endif
0
+ [self setAction:selector];
0
         }
0
         else {
0
             [self setValue:value forKey:label];

Comments

    No one has commented yet.