File 0001-QPdf-addImage-avoid-a-QImage-detach-when-it-s-in-an-.patch of Package libqt4

From 5f0f5dd371cb5fbd1ae1cb8f7b6f03c0109d2d6c Mon Sep 17 00:00:00 2001
From: Martin Pley <qt@pley.org>
Date: Tue, 10 Jun 2014 12:53:59 +0200
Subject: [PATCH] QPdf::addImage(): avoid a QImage detach when it's in an
 acceptable Format

Don't detach QImage, when it's in Format_Mono or Format_ARG32.
Use QImage::constScanLine() instead of QImage::scanLine().

Change-Id: I30fcafb576aea3189637a40fd75f77c70017ba46
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
(cherry picked from qtbase/1a32cc0ae42a4a49f2d45b8ad8251ec40a30bf76)
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
---
 src/gui/painting/qprintengine_pdf.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gui/painting/qprintengine_pdf.cpp b/src/gui/painting/qprintengine_pdf.cpp
index b622611..57dc162 100644
--- a/src/gui/painting/qprintengine_pdf.cpp
+++ b/src/gui/painting/qprintengine_pdf.cpp
@@ -559,7 +559,7 @@ int QPdfEnginePrivate::addImage(const QImage &img, bool *bitmap, qint64 serial_n
         data.resize(bytesPerLine * h);
         char *rawdata = data.data();
         for (int y = 0; y < h; ++y) {
-            memcpy(rawdata, image.scanLine(y), bytesPerLine);
+            memcpy(rawdata, image.constScanLine(y), bytesPerLine);
             rawdata += bytesPerLine;
         }
         object = writeImage(data, w, h, d, 0, 0);
@@ -581,7 +581,7 @@ int QPdfEnginePrivate::addImage(const QImage &img, bool *bitmap, qint64 serial_n
                 softMaskData.resize(w * h);
                 uchar *sdata = (uchar *)softMaskData.data();
                 for (int y = 0; y < h; ++y) {
-                    const QRgb *rgb = (const QRgb *)image.scanLine(y);
+                    const QRgb *rgb = (const QRgb *)image.constScanLine(y);
                     for (int x = 0; x < w; ++x) {
                         uchar alpha = qAlpha(*rgb);
                         *sdata++ = alpha;
@@ -597,7 +597,7 @@ int QPdfEnginePrivate::addImage(const QImage &img, bool *bitmap, qint64 serial_n
             softMaskData.resize(w * h);
             uchar *sdata = (uchar *)softMaskData.data();
             for (int y = 0; y < h; ++y) {
-                const QRgb *rgb = (const QRgb *)image.scanLine(y);
+                const QRgb *rgb = (const QRgb *)image.constScanLine(y);
                 if (colorMode == QPrinter::GrayScale) {
                     for (int x = 0; x < w; ++x) {
                         *(data++) = qGray(*rgb);
-- 
2.0.4
openSUSE Build Service is sponsored by