Re: Performance problem with GC enabled
Re: Performance problem with GC enabled
- Subject: Re: Performance problem with GC enabled
- From: "Paul Sanders" <email@hidden>
- Date: Fri, 13 Mar 2009 17:30:54 -0000
> #define autoscoped __attribute__((cleanup(releaseObject)))
> static inline
> void releaseObject(id *object) {
> [*object release];
> }
> - (void) demo {
> autoscoped NSArray *myArray = [[NSArray alloc] init];
> //do some stuff
> }
> The autoscoped macro tags the lval with an attribute that causes the
> cleanup function to be called when the lvals scope disappears.
> It is not quite the same as a smart pointer, but it does allow me to
> have objects automatically released when their scope disappears,
> without causing autorelease traffic.
That's very interesting, I didn't know that attribute existed. I imagine
that post-dates autorelease pools by some years. But most objects returned
by framework functions are autoreleased which means you can only get rid of
them by bracketing them with an autorelease pool. This bugs me somewhat and
is obviously less efficient than just throwing them away when you are done
with them. But it does let you pass @"string" as a function parameter I
suppose without having to release it afterwards. Still can't say I like it
much. Sorry if I hijacked the thread.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden