Fixed crash on destruction of animating QDockWidget in a QMainWindow
authorRohan McGovern <rohan.mcgovern@nokia.com>
Mon, 22 Oct 2012 04:19:24 +0000 (14:19 +1000)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 25 Oct 2012 10:18:15 +0000 (12:18 +0200)
commit33214af3784feacb2d5188bbf07da92f45f582f9
tree8057817307511c2481a79c755d180153ed5c6460
parent82cb34b05f59b3e3f2d641304381ea9d359bc67b
Fixed crash on destruction of animating QDockWidget in a QMainWindow

It doesn't make sense to hold an unguarded pointer to a
QPropertyAnimation while assigning ownership of that animation to the
animated widget.

Destruction of the widget while the animation is in progress causes
the animation pointer to become dangling; then the widget is removed
from the containing QMainWindowLayout, which attempts to abort the
animation, dereferencing the invalid pointer.

The crash can be reproduced sometimes with
tst_QDockWidget::taskQTBUG_2940_resizeAfterUndocking (which is in
Qt4 only).

Change-Id: I758bf7193b2ea39cd4d8e87197d8ff957d3368eb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
src/widgets/widgets/qwidgetanimator.cpp
src/widgets/widgets/qwidgetanimator_p.h