title: Objc memory crash with autorelase
body: <p>I have been hunting all over my code and can't find the source of this crash:
  I am trying to decode an object with an NSKeyedUnarchiver and it crashes on it every time and says: </p>
  
  <pre><code>*** __NSAutoreleaseFreedObject(): release of previously deallocated object (0x1008ad200) ignored
  *** __NSAutoreleaseFreedObject(): release of previously deallocated object (0x1008ab200) ignored
  *** __NSAutoreleaseFreedObject(): release of previously deallocated object (0x1008a8c00) ignored
  </code></pre>
  
  <p>Ha my bad the reason why initWithCoder was not getting called was it was having issues with the [super initWithCoder:]; This is still driving me crazy. I looked and the pointers and the NSData objects are what are going wrong:</p>
  
  <pre><code>    vertices = malloc(size_point3D * vertexCount);
      textureCoords = malloc(size_point2D * textureCount);
      normals = malloc(size_point3D * normalCount);
      faces = malloc(sizeof(GLuint) * faceCount);
  
  
      NSData *vertexData = [[NSData alloc] initWithData:[coder decodeObjectForKey:@"vertices"]];
      NSData *textureData = [[NSData alloc] initWithData:[coder decodeObjectForKey:@"textureCoords"]];
      NSData *normalData = [[NSData alloc] initWithData:[coder decodeObjectForKey:@"normals"]];
      NSData *faceData = [[NSData alloc] initWithData:[coder decodeObjectForKey:@"faces"]];
  
  
      memcpy(vertices, [vertexData bytes],  sizeof(point3D) * vertexCount);
      memcpy(textureCoords, [textureData bytes], sizeof(point2D) * textureCount);
      memcpy(normals, [normalData bytes], sizeof(point3D) * normalCount);
      memcpy(faces, [faceData bytes], sizeof(GLuint) * faceCount);
  
      [vertexData release];
      [textureData release];
      [normalData release];
      [faceData release];
  </code></pre>
  
  <p>I have tried retaining everything in this part (even the string) but it does not help.</p>