Merge pull request #55 from Microsoft/cherry-pick-0b2cfdc

Use the old association policy to determine whether to release an object
main
davidchisnall 8 years ago committed by GitHub
commit 5cb60562c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -166,12 +166,17 @@ static void setReference(struct reference_list *list,
lock = lock_for_pointer(r);
lock_spinlock(lock);
}
r->policy = policy;
id old = r->object;
r->object = obj;
if (OBJC_ASSOCIATION_ASSIGN != r->policy)
@try
{
objc_release(old);
if (OBJC_ASSOCIATION_ASSIGN != r->policy)
{
objc_release(r->object);
}
}
@finally
{
r->policy = policy;
r->object = obj;
}
if (needLock)
{

Loading…
Cancel
Save