diff options
author | Janne Anttila <janne.anttila@digia.com> | 2009-08-11 06:31:21 (GMT) |
---|---|---|
committer | Janne Anttila <janne.anttila@digia.com> | 2009-08-11 06:31:21 (GMT) |
commit | aa11cdf62d5b6b1b19fb3cf241267917a875aba9 (patch) | |
tree | 9edc72088d25a227507e5e61faa2e2c5cdcd8411 /src/gui/kernel/qdesktopwidget_s60.cpp | |
parent | 21acca0629c03e6c3cfdfb23441b2b0ac6313a59 (diff) | |
download | Qt-aa11cdf62d5b6b1b19fb3cf241267917a875aba9.zip Qt-aa11cdf62d5b6b1b19fb3cf241267917a875aba9.tar.gz Qt-aa11cdf62d5b6b1b19fb3cf241267917a875aba9.tar.bz2 |
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.
Diffstat (limited to 'src/gui/kernel/qdesktopwidget_s60.cpp')
-rw-r--r-- | src/gui/kernel/qdesktopwidget_s60.cpp | 1 |
1 files changed, 0 insertions, 1 deletions
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 |