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 ([email protected])
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 [email protected]