-
Bug
-
Resolution: Done
-
P1: Critical
-
4.6.0
-
None
-
7be079e1b1f13b58f5d69f86e5854edd25065532
The padnavigator example may crash during the flip animation. The pad may have to be flipped a few times before the crash occurs. The following warnings are also printed just before the crash occurs:
QRegion: creating region from big polygon failed...! QRegion: creating region from big polygon failed...!
Reproduced with Qt 4.6.0 SHA-1: 60377a2ccb25e8b9b51d1100e7ff1a0bb42b82c6
The crash is reproducible on 64-bit Windows 7 and 64-bit Windows Vista when using QWindowsXPStyle or QWindowsVistaStyle, but the crash could not be reproduced when using QWindowsXPStyle on 32-bit Windows XP.
Stack trace points to QRegion::isEmpty() where d->qt_rgn is dereferenced while being null.
Stack trace from crash (full stack trace attached as stacktrace.txt):
QtGuid4.dll!QRegion::isEmpty() Line 3962 + 0x13 bytes C++ QtGuid4.dll!QWindowsXPStylePrivate::drawBackgroundThruNativeBuffer(XPThemeData & themeData={...}) Line 1003 + 0x8 bytes C++ QtGuid4.dll!QWindowsXPStylePrivate::drawBackground(XPThemeData & themeData={...}) Line 649 C++ QtGuid4.dll!QWindowsXPStyle::drawPrimitive(QStyle::PrimitiveElement pe=PE_IndicatorCheckBox, const QStyleOption * option=0x00187964, QPainter * p=0x00189b7c, const QWidget * widget=0x023e1890) Line 1868 C++ QtGuid4.dll!QWindowsVistaStyle::drawPrimitive(QStyle::PrimitiveElement element=PE_IndicatorCheckBox, const QStyleOption * option=0x00187964, QPainter * painter=0x00189b7c, const QWidget * widget=0x023e1890) Line 540 C++ QtGuid4.dll!QCommonStyle::drawComplexControl(QStyle::ComplexControl cc=CC_GroupBox, const QStyleOptionComplex * opt=0x00189b20, QPainter * p=0x00189b7c, const QWidget * widget=0x023e1890) Line 3718 C++ QtGuid4.dll!QWindowsStyle::drawComplexControl(QStyle::ComplexControl cc=CC_GroupBox, const QStyleOptionComplex * opt=0x00189b20, QPainter * p=0x00189b7c, const QWidget * widget=0x023e1890) Line 3156 C++ QtGuid4.dll!QWindowsXPStyle::drawComplexControl(QStyle::ComplexControl cc=CC_GroupBox, const QStyleOptionComplex * option=0x00189b20, QPainter * p=0x00189b7c, const QWidget * widget=0x023e1890) Line 3226 C++ QtGuid4.dll!QWindowsVistaStyle::drawComplexControl(QStyle::ComplexControl control=CC_GroupBox, const QStyleOptionComplex * option=0x00189b20, QPainter * painter=0x00189b7c, const QWidget * widget=0x023e1890) Line 1917 C++ QtGuid4.dll!QStylePainter::drawComplexControl(QStyle::ComplexControl cc=CC_GroupBox, const QStyleOptionComplex & opt={...}) Line 95 C++ QtGuid4.dll!QGroupBox::paintEvent(QPaintEvent * __formal=0x0018a400) Line 328 C++ ...
This is a regression from Qt 4.5.2.