summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp b/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp
index ac157b8f7..d202388da 100644
--- a/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp
+++ b/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp
@@ -111,8 +111,10 @@ bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize
// rowBuffer must be defined here so that its destructor is always called even when "setjmp" catches an error.
Vector<JSAMPLE, 600 * 3> rowBuffer;
- if (setjmp(err.m_setjmpBuffer))
+ if (setjmp(err.m_setjmpBuffer)) {
+ jpeg_destroy_compress(&compressData);
return false;
+ }
jpeg_start_compress(&compressData, TRUE);
rowBuffer.resize(compressData.image_width * 3);
@@ -132,6 +134,7 @@ bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize
}
jpeg_finish_compress(&compressData);
+ jpeg_destroy_compress(&compressData);
return true;
}