> 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. -- Greg Parker gpar...@apple.com Runtime Wrangler _______________________________________________ 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