From aa11cdf62d5b6b1b19fb3cf241267917a875aba9 Mon Sep 17 00:00:00 2001 From: Janne Anttila Date: Tue, 11 Aug 2009 09:31:21 +0300 Subject: Fixed KERN-EXEC 3 crash in qdesktopwidget for S60. QDesktopWidgetPrivate::rects etc variables are shared between QDesktopWidgetPrivate objects and private objects maintains refcount to data. We called cleanup for private object directly from QDesktopWidget, which caused the shared private data to be freed after some instance of QDesktopWidget was destroyed. Since we bypassed the refcount also the data for other QDesktopWidgets was invalidated and this cauyse crash when resizeEvent was received. There is no need to call QDesktopWidgetPrivate::cleanup directly since when QDesktopWidget is deleted, it will call destructor for QDesktopWidgetPrivate which deletes the shared data based on ref count. --- src/gui/kernel/qdesktopwidget_s60.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/kernel/qdesktopwidget_s60.cpp b/src/gui/kernel/qdesktopwidget_s60.cpp index 226a759..5734ddd 100644 --- a/src/gui/kernel/qdesktopwidget_s60.cpp +++ b/src/gui/kernel/qdesktopwidget_s60.cpp @@ -126,7 +126,6 @@ QDesktopWidget::QDesktopWidget() QDesktopWidget::~QDesktopWidget() { - QDesktopWidgetPrivate::cleanup(); } bool QDesktopWidget::isVirtualDesktop() const -- cgit v0.12