git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35326 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2012-07-27 19:00:17 +00:00
parent 3000e9ec1c
commit 4d638f1cb0
2 changed files with 17 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2012-07-27 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSKeyValueObserving.m:
Try fix for bug #36967
2012-07-27 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSXMLNode.m: Just report string value as description ...

View file

@ -409,13 +409,13 @@ cifframe_callback(ffi_cif *cif, void *retp, void **args, void *user)
{
// pre setting code here
[obj willChangeValueForKey: key];
ffi_call(cif, imp, retp, args);
ffi_call(cif, (void*)imp, retp, args);
// post setting code here
[obj didChangeValueForKey: key];
}
else
{
ffi_call(cif, imp, retp, args);
ffi_call(cif, (void*)imp, retp, args);
}
RELEASE(key);
}
@ -1875,9 +1875,12 @@ cifframe_callback(ffi_cif *cif, void *retp, void **args, void *user)
{
if (pathInfo->recursion++ == 0)
{
NSMutableSet *set;
id set = objects;
set = [self valueForKey: aKey];
if (nil == set)
{
set = [self valueForKey: aKey];
}
[pathInfo->change setValue: [set mutableCopy] forKey: @"oldSet"];
[pathInfo notifyForKey: aKey ofInstance: [info instance] prior: YES];
}
@ -1906,10 +1909,13 @@ cifframe_callback(ffi_cif *cif, void *retp, void **args, void *user)
if (pathInfo->recursion == 1)
{
NSMutableSet *oldSet;
NSMutableSet *set;
id set = objects;
oldSet = [pathInfo->change valueForKey: @"oldSet"];
set = [self valueForKey: aKey];
if (nil == set)
{
set = [self valueForKey: aKey];
}
[pathInfo->change removeObjectForKey: @"oldSet"];
if (mutationKind == NSKeyValueUnionSetMutation)