Hi All, Please take a look at the method below and look for the // ******* comments
+(void) selfTest { LTWIndexBuffer* myIndexBuffer1; LTWIndexBuffer* myIndexBuffer2; LTWIndexBuffer* myIndexBuffer3; LTWIndexBuffer* myIndexBuffer4; LTWIndexBuffer* myIndexBuffer5; LTWIndexBuffer* myIndexBuffer6; NSUInteger myInitIndexBuffer1[] = {1,2,3,4,5}; NSUInteger myInsertIndexBuffer1[] = {100,200,300,400,500}; NSIndexPath* myIndexPath; NSMutableArray* myArray; NSArray* mySortedArray; myIndexBuffer1 = [[[self class] alloc] initWithIndex:1]; myIndexBuffer2 = [[[self class] alloc] initWithIndexes:&myInitIndexBuffer1[0] length:sizeof(myInitIndexBuffer1) / (sizeof(NSUInteger))]; myIndexPath = [[NSIndexPath alloc] initWithIndexes:&myInitIndexBuffer1[0] length:sizeof(myInitIndexBuffer1) / (sizeof(NSUInteger))]; myIndexBuffer3 = [[[self class] alloc] initWithMaximumIndexLength:0 andIndexPath:myIndexPath]; myIndexBuffer4 = [[[self class] alloc] initWithIndexBuffer:myIndexBuffer3]; [myIndexBuffer4 insertIndexes:&myInsertIndexBuffer1[0] atPosition:11 length:sizeof(myInsertIndexBuffer1) / (sizeof(NSUInteger))]; [myIndexBuffer4 dumpIndexesWithMessage:@"myIndexBuffer4"]; [myIndexBuffer4 insertIndexes:&myInsertIndexBuffer1[0] atPosition:5 length:sizeof(myInsertIndexBuffer1) / (sizeof(NSUInteger))]; [myIndexBuffer4 dumpIndexesWithMessage:@"myIndexBuffer4"]; [myIndexBuffer4 insertIndexes:&myInsertIndexBuffer1[0] atPosition:0 length:sizeof(myInsertIndexBuffer1) / (sizeof(NSUInteger))]; [myIndexBuffer4 dumpIndexesWithMessage:@"myIndexBuffer4"]; myIndexBuffer5 = [[[self class] alloc] initWithIndexBuffer:myIndexBuffer4]; myIndexBuffer6 = [myIndexBuffer4 copy]; [myIndexBuffer6 deleteIndexesAtPosition:0 length:5]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 deleteIndexesAtPosition:4 length:5]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 deleteIndexesAtPosition:9 length:11]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 deleteIndexesAtPosition:5 length:2]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 deleteIndexesAtPosition:5 length:1]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 deleteIndexesAtPosition:5 length:1]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; if ([myIndexBuffer6 isEqual:myIndexBuffer2] == NO) LogIfDave(@"myIndexBuffer6 is NOT Equal to myIndexBuffer2"); else LogIfDave(@"myIndexBuffer6 IS Equal to myIndexBuffer2"); [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 insertIndexes:&myInsertIndexBuffer1[0] atPosition:-1 length:sizeof(myInsertIndexBuffer1) / (sizeof(NSUInteger))]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 insertIndexesFromIndexBuffer:myIndexBuffer2 atPosition:-1]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 insertIndex:997 atPosition:0]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 insertIndex:998 atPosition:8]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer6 insertIndex:999 atPosition:-1]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; if ([myIndexBuffer6 isEqual:myIndexBuffer2] == NO) LogIfDave(@"myIndexBuffer6 is NOT Equal to myIndexBuffer2"); else LogIfDave(@"myIndexBuffer6 IS Equal to myIndexBuffer2"); myArray = [[NSMutableArray alloc] init]; //************************* No Memory leak warning!!!!! [myArray addObject:myIndexBuffer1]; [myArray addObject:myIndexBuffer2]; [myArray addObject:myIndexBuffer3]; [myArray addObject:myIndexBuffer4]; [myArray addObject:myIndexBuffer5]; [myArray addObject:myIndexBuffer6]; LogIfDave(@"Before Sort: %@",myArray); mySortedArray = [myArray sortedArrayUsingSelector:@selector(compareAscending:)]; LogIfDave(@"After Sort compareAscending: %@",mySortedArray); mySortedArray = [myArray sortedArrayUsingSelector:@selector(compareDecending:)]; LogIfDave(@"After Sort compareDecending: %@",mySortedArray); LogIfDave(@"-------------------------"); [myIndexBuffer1 dumpIndexesWithMessage:@"myIndexBuffer1"]; [myIndexBuffer2 dumpIndexesWithMessage:@"myIndexBuffer2"]; [myIndexBuffer3 dumpIndexesWithMessage:@"myIndexBuffer3"]; [myIndexBuffer4 dumpIndexesWithMessage:@"myIndexBuffer4"]; [myIndexBuffer5 dumpIndexesWithMessage:@"myIndexBuffer5"]; [myIndexBuffer6 dumpIndexesWithMessage:@"myIndexBuffer6"]; [myIndexBuffer1 release]; //*************************If I comment out this line, I DO get a warning on myIndexBuffer1 [myIndexBuffer2 release]; [myIndexBuffer3 release]; [myIndexBuffer4 release]; [myIndexBuffer5 release]; [myIndexBuffer6 release]; [myIndexPath release]; } Is this a bug? I’ve spotted this before, but then it happened with an object that was in a Framework and I thought it was because of that, but this is defined in my app. All the Best Dave _______________________________________________ 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