summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
diff options
context:
space:
mode:
authorKim Motoyoshi Kalland <kim.kalland@nokia.com>2010-09-30 11:19:08 (GMT)
committerKim Motoyoshi Kalland <kim.kalland@nokia.com>2010-09-30 11:21:19 (GMT)
commit718d22962de9b2798ccae4aac6cb5e3798d440a1 (patch)
treef63c06b8ef4095e05a2da02792768d0f8e51a78a /src/gui/painting
parentb8089f0b7a0fef9318070aea9c8344bfe987bac9 (diff)
downloadQt-718d22962de9b2798ccae4aac6cb5e3798d440a1.zip
Qt-718d22962de9b2798ccae4aac6cb5e3798d440a1.tar.gz
Qt-718d22962de9b2798ccae4aac6cb5e3798d440a1.tar.bz2
Fixed accessing freed memory in raster engine.
The bug was discovered when running the svgviewer example on 64-bit Windows. Reviewed-by: Samuel
Diffstat (limited to 'src/gui/painting')
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 36e1082..9749244 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -4233,6 +4233,8 @@ void QRasterPaintEnginePrivate::rasterize(QT_FT_Outline *outline,
break;
}
+ rendered_spans += q_gray_rendered_spans(*grayRaster.data());
+
#if defined(Q_WS_WIN64)
_aligned_free(rasterPoolBase);
#else
@@ -4251,8 +4253,6 @@ void QRasterPaintEnginePrivate::rasterize(QT_FT_Outline *outline,
#endif
Q_CHECK_PTR(rasterPoolBase); // note: we just freed the old rasterPoolBase. I hope it's not fatal.
- rendered_spans += q_gray_rendered_spans(*grayRaster.data());
-
qt_ft_grays_raster.raster_done(*grayRaster.data());
qt_ft_grays_raster.raster_new(grayRaster.data());
qt_ft_grays_raster.raster_reset(*grayRaster.data(), rasterPoolBase, rasterPoolSize);