From a0d7a5cf999fe3adac2b2166085194cf93a4a424 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 5 Mar 2010 11:10:57 +0200 Subject: Fixed crash at application exit when QProcess was used in Symbian QProcessManagerMediator and QProcessActive were not properly canceled in their destructors, causing crash when global static QProcessManager was deleted. Task-number: QTBUG-7735 Reviewed-by: Janne Anttila --- src/corelib/io/qprocess_symbian.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/io/qprocess_symbian.cpp b/src/corelib/io/qprocess_symbian.cpp index 75cde51..e37bdda 100644 --- a/src/corelib/io/qprocess_symbian.cpp +++ b/src/corelib/io/qprocess_symbian.cpp @@ -371,6 +371,7 @@ QProcessActive::QProcessActive() // Called from ProcessManagerThread QProcessActive::~QProcessActive() { + Cancel(); process = NULL; pproc = NULL; } @@ -477,6 +478,7 @@ QProcessManagerMediator::QProcessManagerMediator() // Called from ProcessManagerThread QProcessManagerMediator::~QProcessManagerMediator() { + Cancel(); processManagerThread.Close(); currentCommand = ENoCommand; currentObserver = NULL; -- cgit v0.12 From ab12c1c804ee40931515a0d53e5dc70db373f3bd Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Fri, 5 Mar 2010 11:22:12 +0200 Subject: Fix for QTBUG-8762 QApplication::setGraphicsSystem("raster") crashes. QRasterGraphicsSystem tries to create QRasterPixmapData and QRasterWindowSurface if QApplication::setGraphicsSystem("raster") is used. On Symbian it should create QS60PixmapData and QS60WindowSurface. Task-number: QTBUG-8762 Reviewed-by: Jason Barron --- src/gui/painting/qgraphicssystem_raster.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gui/painting/qgraphicssystem_raster.cpp b/src/gui/painting/qgraphicssystem_raster.cpp index f90aea0..909508e 100644 --- a/src/gui/painting/qgraphicssystem_raster.cpp +++ b/src/gui/painting/qgraphicssystem_raster.cpp @@ -41,19 +41,32 @@ #include "qgraphicssystem_raster_p.h" +#ifdef Q_OS_SYMBIAN +#include "private/qpixmap_s60_p.h" +#include "private/qwindowsurface_s60_p.h" +#else #include "private/qpixmap_raster_p.h" #include "private/qwindowsurface_raster_p.h" +#endif QT_BEGIN_NAMESPACE QPixmapData *QRasterGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const { +#ifdef Q_OS_SYMBIAN + return new QS60PixmapData(type); +#else return new QRasterPixmapData(type); +#endif } QWindowSurface *QRasterGraphicsSystem::createWindowSurface(QWidget *widget) const { +#ifdef Q_OS_SYMBIAN + return new QS60WindowSurface(widget); +#else return new QRasterWindowSurface(widget); +#endif } QT_END_NAMESPACE -- cgit v0.12