Skip to content

Commit

Permalink
Merge pull request #162 from kesla/master
Browse files Browse the repository at this point in the history
Fixes Image memory leak (#150)
  • Loading branch information
tj committed Apr 25, 2012
2 parents eb04ff6 + c9f991b commit 7adcd31
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/Image.cc
Expand Up @@ -240,6 +240,7 @@ Image::SetOnerror(Local<String>, Local<Value> val, const AccessorInfo &info) {
*/

Image::Image() {
live_data = NULL;
filename = NULL;
_surface = NULL;
width = height = 0;
Expand All @@ -255,6 +256,8 @@ Image::~Image() {
V8::AdjustAmountOfExternalAllocatedMemory(-4 * width * height);
cairo_surface_destroy(_surface);
}

if (live_data) free(live_data);
if (filename) free(filename);
}

Expand Down Expand Up @@ -544,7 +547,7 @@ Image::loadGIFFromBuffer(uint8_t *buf, unsigned len) {
free(data);
return status;
}

live_data = data;
return CAIRO_STATUS_SUCCESS;
}
#endif /* HAVE_GIF */
Expand Down Expand Up @@ -665,7 +668,7 @@ Image::loadJPEGFromBuffer(uint8_t *buf, unsigned len) {
free(data);
return status;
}

live_data = data;
return CAIRO_STATUS_SUCCESS;
}

Expand Down
1 change: 1 addition & 0 deletions src/Image.h
Expand Up @@ -70,6 +70,7 @@ class Image: public node::ObjectWrap {

private:
cairo_surface_t *_surface;
uint8_t *live_data;
~Image();
};

Expand Down

0 comments on commit 7adcd31

Please sign in to comment.