Re: NSMutableData capacity
Re: NSMutableData capacity
- Subject: Re: NSMutableData capacity
- From: Fritz Anderson <email@hidden>
- Date: Wed, 23 May 2012 14:07:00 -0500
On 23 May 2012, at 1:41 PM, Jason Teagle wrote:
> Unless I'm missing something, if you use
...
> -initWithCapacity:some_capacity
>
> to guarantee it has the capacity (but not necessarily allocated yet) followed by
>
> -initWithLength:some_capacity
DO NOT DO THIS.
-init... is a one-time operation in Cocoa. The call is privileged to make destructive initializations to the object, to assume that its initial state can be ignored, and even to replace the object entirely. Subsequent -init... calls will in turn assume they can make destructive initializations, and the object will almost certainly (maybe not today, maybe not tomorrow, but soon, and for the rest of its life) break.
I can't make assumptions about how NSMutableData is implemented, but I'd guess that -initWithLength: would assume that its buffer pointer is uninitialized, and discard the buffer it got from -initWithCapacity: without freeing it. And that's the best case I can imagine.
— F
_______________________________________________
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