summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-10-02 13:48:27 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-10-02 13:48:27 +0200
commitbdc2df1a04f65c35651ad962f12723e177f4bd2f (patch)
tree0a59d981895e4547e4e3f7bf9190a6eb3a7e71b5
parentab1f3ee4c5fea333d5c0d3a6eb9eeda987763cc9 (diff)
parent3c68f26c052b06da9b43bb775cbe5a539fccb0c3 (diff)
Merge remote-tracking branch 'origin/5.5' into 5.6
-rw-r--r--src/plugins/imageformats/jp2/qjp2handler.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/imageformats/jp2/qjp2handler.cpp b/src/plugins/imageformats/jp2/qjp2handler.cpp
index f69538c..f8f35b4 100644
--- a/src/plugins/imageformats/jp2/qjp2handler.cpp
+++ b/src/plugins/imageformats/jp2/qjp2handler.cpp
@@ -777,6 +777,9 @@ bool Jpeg2000JasperReader::write(const QImage &image, int quality)
if (qtDepth == 32) { // RGB(A)
jasper_image = newRGBAImage(qtWidth, qtHeight, qtImage.hasAlphaChannel());
+ if (!jasper_image)
+ return false;
+
if (qtImage.hasAlphaChannel())
copyQtJasper(&Jpeg2000JasperReader::copyScanlineQtJasperRGBA);
else
@@ -785,6 +788,9 @@ bool Jpeg2000JasperReader::write(const QImage &image, int quality)
// Color mapped grayscale
if (qtImage.allGray()) {
jasper_image = newGrayscaleImage(qtWidth, qtHeight, qtImage.hasAlphaChannel());
+ if (!jasper_image)
+ return false;
+
if (qtImage.hasAlphaChannel())
copyQtJasper(&Jpeg2000JasperReader::copyScanlineQtJasperColormapGrayscaleA);
else
@@ -792,6 +798,9 @@ bool Jpeg2000JasperReader::write(const QImage &image, int quality)
} else {
// Color mapped color
jasper_image = newRGBAImage(qtWidth, qtHeight, qtImage.hasAlphaChannel());
+ if (!jasper_image)
+ return false;
+
if (qtImage.hasAlphaChannel())
copyQtJasper(&Jpeg2000JasperReader::copyScanlineQtJasperColormapRGBA);
else
@@ -1041,6 +1050,11 @@ jas_image_t* Jpeg2000JasperReader::newRGBAImage(const int width,
jas_image_t *newImage = jas_image_create(jasNumComponents, params,
JAS_CLRSPC_SRGB);
+ if (!newImage) {
+ delete[] params;
+ return 0;
+ }
+
jas_image_setcmpttype(newImage, 0, JAS_IMAGE_CT_RGB_R);
jas_image_setcmpttype(newImage, 1, JAS_IMAGE_CT_RGB_G);
jas_image_setcmpttype(newImage, 2, JAS_IMAGE_CT_RGB_B);
@@ -1074,6 +1088,8 @@ jas_image_t *Jpeg2000JasperReader::newGrayscaleImage(const int width,
jasNumComponents = alpha ? 2 : 1;
jas_image_cmptparm_t param = createComponentMetadata(width, height);
jas_image_t *newImage = jas_image_create(1, &param, JAS_CLRSPC_SGRAY);
+ if (!newImage)
+ return 0;
jas_image_setcmpttype(newImage, 0, JAS_IMAGE_CT_GRAY_Y);