diff options
author | 2013-11-12 14:38:41 +0000 | |
---|---|---|
committer | 2013-11-12 14:38:41 +0000 | |
commit | feeca3c7c21423f9189e9100aad4ca7397e9728d (patch) | |
tree | dada88cfb7011f4d1bef73887444afd3a957e8ce | |
parent | 59c3ab637b7cb23c1afc098a2967518788a671ea (diff) |
Create nonPOD before setjmp.
With PNGAutoClean created after setjmp, when longjmp is called its destructor
is never called. Create it before setjmp, ensuring that its destructor is
called.
R=mtklein@google.com
Review URL: https://codereview.chromium.org/65283002
git-svn-id: http://skia.googlecode.com/svn/trunk@12238 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | src/images/SkImageDecoder_libpng.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp index e46def4cab..b51ffb9ea3 100644 --- a/src/images/SkImageDecoder_libpng.cpp +++ b/src/images/SkImageDecoder_libpng.cpp @@ -309,12 +309,12 @@ bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap, return false; } + PNGAutoClean autoClean(png_ptr, info_ptr); + if (setjmp(png_jmpbuf(png_ptr))) { return false; } - PNGAutoClean autoClean(png_ptr, info_ptr); - png_uint_32 origWidth, origHeight; int bitDepth, colorType, interlaceType; png_get_IHDR(png_ptr, info_ptr, &origWidth, &origHeight, &bitDepth, |