diff --git a/ChangeLog b/ChangeLog index 9503f899b..ea166ad01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-06-03 Richard Frith-Macdonald + + * Source/NSZone.m: Fixed error in malloc of non-freeable zones + (bug #9199) was failing to update top of block after allocation. + 2004-06-02 Richard Frith-Macdonald * Source/NSUnarchiver.m: Decode class names directly so we can diff --git a/Source/NSZone.m b/Source/NSZone.m index b76e992fe..6ddff2219 100644 --- a/Source/NSZone.m +++ b/Source/NSZone.m @@ -1306,7 +1306,7 @@ nmalloc (NSZone *zone, size_t size) if (freesize >= chunksize) { chunkhead = (void*)(block)+top; - block += chunksize; + block->top += chunksize; } else { diff --git a/Testing/basic.m b/Testing/basic.m index a2bd46a0f..6409f31f7 100644 --- a/Testing/basic.m +++ b/Testing/basic.m @@ -1,5 +1,6 @@ #include #include +#include #include @@ -30,6 +31,52 @@ static void test2(void) NSLog(@"-[NSURL path] returned \"%@\", expected \"%@\"", result, expected); } +static try(GSMimeParser *p, NSData *d) +{ + if ([p parse: d] == NO) + { + NSLog(@"HTTP parse failure - %@", p); + } + else + { + BOOL complete = [p isComplete]; + GSMimeDocument *document = [p mimeDocument]; + + if (complete == NO && [p isInHeaders] == NO) + { + NSString *enc; + NSString *len; + int ver; + + ver = [[[document headerNamed: @"http"] + objectForKey: NSHTTPPropertyServerHTTPVersionKey] intValue]; + len = [[document headerNamed: @"content-length"] value]; + enc = [[document headerNamed: @"content-transfer-encoding"] value]; + if (enc == nil) + { + enc = [[document headerNamed: @"transfer-encoding"] value]; + } + + if ([enc isEqualToString: @"chunked"] == YES) + { + complete = NO; // Read chunked body data + } + else if (ver >= 1 && [len intValue] == 0) + { + complete = YES; // No content + } + else + { + complete = NO; // No + } + } + if (complete == YES) + { + NSLog(@"Got data %@", [p data]); + } + } +} + int main () { id pool = [NSAutoreleasePool new];