malloc:mmap(size=XX) failed (error code=12)
- by Michel
I have a memory problem in an iPhone app, giving me a hard time.
Here is the error message I get:
malloc: * mmap(size=9281536) failed (error code=12)
* error: can't allocate region
I am using ARC for this app, in case that might be useful information.
The code (below) is just using a file in the Bundle in order to load a core data entity.
The strange thing is the crash happens only after more than 90 loops;
while it seems to mee that since the size of the "contents" in getting smaller and smaller, the memory request should also get smaller and smaller.
Here is the code, if any one can see a flaw please let me know.
NSString *path,*contents,*lineBuffer;
path=[[NSBundle mainBundle] pathForResource:@"myFileName" ofType:@"txt"];
contents=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
int counter=0;
while (counter<10000) {
lineBuffer=[contents substringToIndex:[contents rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]].location];
contents=[contents substringFromIndex:[lineBuffer length]+1];
newItem=[NSEntityDescription insertNewObjectForEntityForName:@"myEntityName"
inManagedObjectContext:context];
[newItem setValue:lineBuffer forKey:@"name"];
request=[[NSFetchRequest alloc] init];
[request setEntity: [NSEntityDescription entityForName:@"myEntityName"
inManagedObjectContext:context]];
error=nil;
[context save:&error];
counter++;
}