Don't send retain / release messages in GC mode when copying object pointers into blocks.

main
theraven 15 years ago
parent d1199844cb
commit e7767baf50

@ -363,10 +363,14 @@ void _Block_object_assign(void *destAddr, const void *object, const int flags)
{
fprintf(stderr, "-retain\n");
id src = (id)object;
id *dst = destAddr;
void **dst = destAddr;
*dst = src;
if (!isGCEnabled)
{
*dst = [src retain];
}
}
}
}
/* Similarly a compiler generated dispose helper needs to call back for each
@ -436,9 +440,12 @@ void _Block_object_dispose(const void *object, const int flags)
else if((flags & BLOCK_FIELD_IS_OBJECT) == BLOCK_FIELD_IS_OBJECT)
{
id src = (id)object;
if (!isGCEnabled)
{
[src release];
}
}
}
}

Loading…
Cancel
Save