diff --git a/ChangeLog b/ChangeLog index bca53d9fa..33d0ca602 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,19 +1,26 @@ +2009-08-19 Eric Wasylishen + + * Source/Additions/GSObjCRuntime.m: + Behave consistently with MacOS-X when a getter or setter method + returns a type of data which is not supported by KVC. + 2009-08-15 David Chisnall * Source/NSObject: - - Tweaked NSObject to use atomic ops with LLVM as well as gcc (this - probably isn't actually needed) - - Fixed SIGFPE problem on FreeBSD using proper interfaces instead of - an asm hack. - * Removes various mframe things from being compiled when ffcall/libffi is - used (mframe.m, NSConnection.m, NSInvocation.m) + - Tweaked NSObject to use atomic ops with LLVM as well as gcc (this + probably isn't actually needed) + - Fixed SIGFPE problem on FreeBSD using proper interfaces instead of + an asm hack. + * Removes various mframe things from being compiled when ffcall/libffi + is used (mframe.m, NSConnection.m, NSInvocation.m) * Turned a nested function in make_strings.m into a macro. 2009-08-12 Richard Frith-Macdonald * Source/NSData.m: Remove some redundant methods and add checks for attempts to use a null pointer to set bytes in the data. - * Source/NSCharacterSet.m: Save mem with index set rather than bitmap set + * Source/NSCharacterSet.m: Save mem with index set rather than + bitmap set 2009-08-11 Fred Kiefer diff --git a/Source/Additions/GSObjCRuntime.m b/Source/Additions/GSObjCRuntime.m index e56278db5..d703bb74c 100644 --- a/Source/Additions/GSObjCRuntime.m +++ b/Source/Additions/GSObjCRuntime.m @@ -1841,14 +1841,14 @@ GSObjCGetVal(NSObject *self, const char *key, SEL sel, } else { - [NSException raise: NSInvalidArgumentException - format: @"key-value get method unsupported struct"]; + val = [self valueForUndefinedKey: + [NSString stringWithUTF8String: key]]; } break; default: - [NSException raise: NSInvalidArgumentException - format: @"key-value get method has unsupported type"]; + val = [self valueForUndefinedKey: + [NSString stringWithUTF8String: key]]; } return val; } @@ -1897,8 +1897,8 @@ GSObjCSetVal(NSObject *self, const char *key, id val, SEL sel, } if (type == NULL) { - [self setValue: val - forUndefinedKey: [NSString stringWithUTF8String: key]]; + [self setValue: val forUndefinedKey: + [NSString stringWithUTF8String: key]]; } else if ((val == nil || val == null) && *type != _C_ID && *type != _C_CLASS) { @@ -2255,14 +2255,14 @@ GSObjCSetVal(NSObject *self, const char *key, id val, SEL sel, } else { - [NSException raise: NSInvalidArgumentException - format: @"key-value set method unsupported struct"]; + [self setValue: val forUndefinedKey: + [NSString stringWithUTF8String: key]]; } break; default: - [NSException raise: NSInvalidArgumentException - format: @"key-value set method has unsupported type"]; + [self setValue: val forUndefinedKey: + [NSString stringWithUTF8String: key]]; } } }