Hi...

I discovered a crash in NSData...

At line 634: in NSData.m (current CVS head version) you will see
this code:

- (id) initWithContentsOfMappedFile: (NSString *)path
{
#ifdef    HAVE_MMAP
 RELEASE(self);
 self = [NSDataMappedFile allocWithZone: GSObjCZone(self)];
 return [self initWithContentsOfMappedFile: path];
#else
 return [self initWithContentsOfFile: path];
#endif
}

Imagine MMAP is defined. I wonder how this could ever have
worked. It crashes for me (of course) self is released before the
zone is taken from it.

I suggest this change to make it working:
- (id) initWithContentsOfMappedFile: (NSString *)path
{
#if    HAVE_MMAP
 NSZone *myZone = GSObjCZone(self);
 RELEASE(self);
 self = [NSDataMappedFile allocWithZone: myZone];
 return [self initWithContentsOfMappedFile: path];
#else
 return [self initWithContentsOfFile: path];
#endif
}

And now it works for me...

Roland




_______________________________________________ Bug-gnustep mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to