> On Oct 22, 2014, at 12:04 PM, Gerriet M. Denkmann <[email protected]> 
> wrote:
> 
>> On 23 Oct 2014, at 01:37, Scott Ribe <[email protected]> wrote:
>> 
>> On Oct 22, 2014, at 12:19 PM, Jonathan Mitchell <[email protected]> 
>> wrote:
>>> 
>>> Surely the code that returns the object pointed to by temp has to ensure 
>>> that the object has been correctly retained?
>> 
>> So, maybe __autorelease?
> 
> Tried:
> [ iv invoke ];
> NSDictionary * __autoreleasing a;
> [ iv getReturnValue: &a ];
> 
> Result: no crash.
> 
> So, indeed, __autoreleasing seems to be the answer.
> ( __autoreleasing is used to denote arguments that are passed by reference 
> (id *) and are autoreleased on return.)

__autoreleasing is not correct, although it might happen to work today. 
__autoreleasing means the value stored in the variable is autoreleased. 
-getReturnValue: does not autorelease the value it stores, so the annotation 
does not match the behavior.

The annotation that matches the behavior is __unsafe_unretained. Use that 
instead.


-- 
Greg Parker     [email protected]     Runtime Wrangler



_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to