From feeca3c7c21423f9189e9100aad4ca7397e9728d Mon Sep 17 00:00:00 2001 From: "scroggo@google.com" Date: Tue, 12 Nov 2013 14:38:41 +0000 Subject: 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 --- src/images/SkImageDecoder_libpng.cpp | 4 ++-- 1 file 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, -- cgit v1.2.3