Monotone-Parent: 810ca1c510af3f2653d3478ccb575204bc309c5a

Monotone-Revision: d3d21b70ee927b400d90095e3cd2ed9de1afc2f4

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2009-06-10T20:54:02
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2009-06-10 20:54:02 +00:00
parent 7ef586be27
commit 97f9609afb
4 changed files with 72 additions and 29 deletions
+31 -5
View File
@@ -24,6 +24,7 @@
#import <Foundation/NSEnumerator.h>
#import <Foundation/NSNull.h>
#import <Foundation/NSString.h>
#import <Foundation/NSValue.h>
#import "NSArray+Utilities.h"
@@ -199,17 +200,42 @@
@implementation NSMutableArray (SOGoArrayUtilities)
- (void) addNonNSObject: (void *) objectPtr
withSize: (size_t) objectSize
copy: (BOOL) doCopy
{
void *newObjectPtr;
if (doCopy)
{
newObjectPtr = NSZoneMalloc (NULL, objectSize);
memcpy (newObjectPtr, objectPtr, objectSize);
}
else
newObjectPtr = objectPtr;
[self addObject: [NSValue valueWithPointer: newObjectPtr]];
}
- (void) freeNonNSObjects
{
unsigned int count, max;
void *objectPtr;
max = [self count];
for (count = 0; count < max; count++)
{
objectPtr = [[self objectAtIndex: count] pointerValue];
NSZoneFree (NULL, objectPtr);
}
}
- (void) addObjectUniquely: (id) object
{
if (![self containsObject: object])
[self addObject: object];
}
- (void) addRange: (NSRange) newRange
{
[self addObject: NSStringFromRange (newRange)];
}
- (BOOL) hasRangeIntersection: (NSRange) testRange
{
NSEnumerator *ranges;