> On 23 Oct 2014, at 04:31, Greg Parker <gpar...@apple.com> wrote:
> 
> 
>> On Oct 22, 2014, at 12:04 PM, Gerriet M. Denkmann <gerr...@mdenkmann.de> 
>> wrote:
>> 
>>> On 23 Oct 2014, at 01:37, Scott Ribe <scott_r...@elevated-dev.com> wrote:
>>> 
>>> On Oct 22, 2014, at 12:19 PM, Jonathan Mitchell <jonat...@mugginsoft.com> 
>>> 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.

Just tried this.
Result: no crash, no leaks (Leaks Instrument). Perfect.

Thanks a lot!

Kind regards,

Gerriet.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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 arch...@mail-archive.com

Reply via email to