-initWithCString:encoding: should copy the bytes. You can verify that yourself with a small test:

   char buf[10+1] = "0123456789";
NSString *s = [[NSString alloc] initWithCString:buf encoding:NSASCIIStringEncoding];
   NSLog(@"before %@", s);
   memset(buf, 'x', 10);
   NSLog(@"after  %@", s);

If the bytes were not copied then `before` and `after` would differ.

I don't see any memory errors in your code. My next suspect would be memory errors in getMetadata() or getLengthOfMetadata(). Try replacing getLengthOfMetadata(...) with pcLength=10, and/or getMetadata(...) with memset(pBuffer, 'x', pcLength). If one of those changes makes the crash go away then those two functions look much more suspicious.

Sure enough, replacing those functions makes the crash go away. Unfortunately, those functions are in a third-party library, and I can't get around using them. I'll contact the developers of that library and see what we can work out.

Thanks!

Hank

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to