Found something interesting.   If I simply set the capacity to "length" instead 
of 0, then it runs without crashing.   Could this be a bug in CFData?

int main(int argc, const char * argv[])
{
    CFIndex length = (1ULL << 30);
    fprintf(stderr, "length = %ld\n",length);
    CFMutableDataRef data = CFDataCreateMutable(kCFAllocatorDefault, length);
    CFDataSetLength(data, length);
}

- Philip


On Mar 21, 2012, at 10:26 PM, Jens Alfke wrote:

> 
> On Mar 21, 2012, at 6:00 PM, Grandinetti Philip wrote:
> 
>> it crashes with the error message below:
>> 
>> length = 1073741824
>> test(2463) malloc: *** mmap(size=18446744071562067968) failed (error code=12)
> 
> That is bizarre — it happens to me too.
> 
> 18446744071562067968 = 0xffffffff80000000 … so it’s as though something 
> doubled the length parameter, then sign-extended it to 64 bits, before 
> passing it to malloc. Why, I have no idea.
> 
> —Jens

_______________________________________________

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