diff options
author | aavit <eirik.aavitsland@digia.com> | 2013-03-12 12:47:55 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-14 09:59:58 +0100 |
commit | db775741ed57efc16c697471f5b87689df7105a8 (patch) | |
tree | ff102d83afd19b010364f39e0ba5c1c07808e40e /src | |
parent | 1e97a1ad8cbab43b8d4be44dd45805fc5c183cfe (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/painting/qrasterizer.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/painting/qrasterizer.cpp b/src/gui/painting/qrasterizer.cpp index 8483a05d60..a6be7c6c78 100644 --- a/src/gui/painting/qrasterizer.cpp +++ b/src/gui/painting/qrasterizer.cpp @@ -891,6 +891,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]))); |