aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-12 14:38:41 +0000
committerGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-11-12 14:38:41 +0000
commitfeeca3c7c21423f9189e9100aad4ca7397e9728d (patch)
treedada88cfb7011f4d1bef73887444afd3a957e8ce
parent59c3ab637b7cb23c1afc098a2967518788a671ea (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.cpp4
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,