summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-06-23 05:40:45 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-06-23 05:40:45 (GMT)
commiteaf886318568bfbd9aa1722586264c8fdf90df12 (patch)
tree143c5dda8b9a2228c5c20c43cfc341625a561e12 /src/gui/painting
parent25da7da1b5b454eae0b8080a97fd4a37d688aa54 (diff)
parent08e2216a5157c5de30a65674051b08df6f2a1bf6 (diff)
downloadQt-eaf886318568bfbd9aa1722586264c8fdf90df12.zip
Qt-eaf886318568bfbd9aa1722586264c8fdf90df12.tar.gz
Qt-eaf886318568bfbd9aa1722586264c8fdf90df12.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fixed crash in the fast blend functions for raster
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index a212718..94e5cbc 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -2688,7 +2688,11 @@ void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRe
if (s->matrix.type() > QTransform::TxTranslate || stretch_sr) {
- if (s->flags.fast_images) {
+ QRectF targetBounds = s->matrix.mapRect(r);
+ bool exceedsPrecision = targetBounds.width() > 0xffff
+ || targetBounds.height() > 0xffff;
+
+ if (s->flags.fast_images && !exceedsPrecision) {
if (s->matrix.type() > QTransform::TxScale) {
SrcOverTransformFunc func = qTransformFunctions[d->rasterBuffer->format][img.format()];
if (func && (!clip || clip->hasRectClip)) {