summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qrasterizer.cpp
diff options
context:
space:
mode:
authoraavit <eirik.aavitsland@digia.com>2013-03-12 12:47:55 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-14 17:38:14 +0100
commit901345b79bc978e8418103b51443c0609325a202 (patch)
tree32a459bee32521dff4dd2aced95eb5e14912a90a /src/gui/painting/qrasterizer.cpp
parent82b2df405962aae03f8a4ea1cf3028fbac0eff57 (diff)
Fixes: assert in QPainter::fillRect on very large paint devices
For devices taller than 32768, fillRect with linear gradient would go below the cliprect. Task-number: QTBUG-26766 Change-Id: I516ede1545909e9ce2de5812c61bb473f99f5759 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> (cherry picked from qtbase/db775741ed57efc16c697471f5b87689df7105a8)
Diffstat (limited to 'src/gui/painting/qrasterizer.cpp')
-rw-r--r--src/gui/painting/qrasterizer.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/painting/qrasterizer.cpp b/src/gui/painting/qrasterizer.cpp
index 6db4f78a1c..18b89c19b6 100644
--- a/src/gui/painting/qrasterizer.cpp
+++ b/src/gui/painting/qrasterizer.cpp
@@ -877,6 +877,8 @@ void QRasterizer::rasterizeLine(const QPointF &a, const QPointF &b, qreal width,
const Q16Dot16 rowHeight = qMin(yFP + Q16Dot16Factor, yPb)
- qMax(yFP, yPa);
const int y = Q16Dot16ToInt(yFP);
+ if (y > d->clipRect.bottom())
+ break;
for (int i = 0; i < n; ++i) {
buffer.addSpan(x[i], len[i], y,
Q16Dot16ToInt(Q16Dot16Multiply(rowHeight, coverage[i])));