Index: src/images/SkImageDecoder_libjpeg.cpp |
diff --git a/src/images/SkImageDecoder_libjpeg.cpp b/src/images/SkImageDecoder_libjpeg.cpp |
index 0a016e5cd2daae89222ae53f8e6754df579dc7b3..e0783c9fb5985cd19ff82c0d6494a66c972461c2 100644 |
--- a/src/images/SkImageDecoder_libjpeg.cpp |
+++ b/src/images/SkImageDecoder_libjpeg.cpp |
@@ -917,11 +917,6 @@ protected: |
SkAutoTime atm("JPEG Encode"); |
#endif |
- const WriteScanline writer = ChooseWriter(bm); |
- if (NULL == writer) { |
- return false; |
- } |
- |
SkAutoLockPixels alp(bm); |
if (NULL == bm.getPixels()) { |
return false; |
@@ -940,8 +935,14 @@ protected: |
if (setjmp(sk_err.fJmpBuf)) { |
return false; |
} |
- jpeg_create_compress(&cinfo); |
+ // Keep after setjmp or mark volatile. |
+ const WriteScanline writer = ChooseWriter(bm); |
+ if (NULL == writer) { |
+ return false; |
+ } |
+ |
+ jpeg_create_compress(&cinfo); |
cinfo.dest = &sk_wstream; |
cinfo.image_width = bm.width(); |
cinfo.image_height = bm.height(); |