/*
- Copyright (C) 2000-2005 SKYRIX Software AG
+ Copyright (C) 2000-2007 SKYRIX Software AG
This file is part of SOPE.
CHK_WOCDICT_CACHE;
#if NeXT_RUNTIME
takeValue = (void *)[self methodForSelector:@selector(takeValue:forKey:)];
+#elif GNUSTEP_BASE_LIBRARY
+ takeValue = (void*)method_get_imp(class_get_instance_method(self->isa,
+ @selector(setValue:forKey:)));
#else
takeValue = (void*)method_get_imp(class_get_instance_method(self->isa,
@selector(takeValue:forKey:)));
#endif
- while ((key = nextKey(keys, @selector(nextObject)))) {
+ while ((key = nextKey(keys, @selector(nextObject))) != nil) {
static Class lastAssocClass = Nil; // THREAD
static id (*valInComp)(id, SEL, WOComponent *);
register WOAssociation *binding;
lastAssocClass = *(Class *)binding;
#if NeXT_RUNTIME
valInComp = (void *)
- [binding methodForSelector:@selector(valueInComponent:)];
+ [binding methodForSelector:@selector(valueInComponent:)];
#else
valInComp = (void *)
method_get_imp(class_get_instance_method(*(Class *)binding,
// parameter is a string because ObjC doesn't know about bool
// and will evaluate the string as a char value
// (this is common if you use const:mykey="YES" in WOx)
+#if GNUSTEP_BASE_LIBRARY
+ takeValue(self, @selector(setValue:forKey:), value, key);
+#else
takeValue(self, @selector(takeValue:forKey:), value, key);
+#endif
}
}
@selector(valueForKey:)));
#endif
- while ((key = nextKey(keys, @selector(nextObject)))) {
+ while ((key = nextKey(keys, @selector(nextObject))) != nil) {
static Class lastAssocClass = Nil;
static BOOL (*isSettable)(id, SEL);
static void (*setValInComp)(id, SEL, id, WOComponent *);
#if NeXT_RUNTIME
isSettable =
- (void*)[binding methodForSelector:@selector(isValueSettable)];
+ (void*)[binding methodForSelector:@selector(isValueSettable)];
setValInComp =
- (void*)[binding methodForSelector:@selector(setValue:inComponent:)];
+ (void*)[binding methodForSelector:@selector(setValue:inComponent:)];
#else
isSettable = (void*)
method_get_imp(class_get_instance_method(*(Class *)binding,