mirror of https://github.com/qt/qtbase.git
tst_QSplitter: fix memleak in replaceWidgetWhileHidden()
QSplitter::replaceWidget() is decumented to un-parent and return the original widget (the one that the newWidget) replaces, so the caller of the function is responsible for deleting it, which the test function neglected. Fix by storing the returned object in a unique_ptr for delayed deletion at the exit of the function. This is the minimally-invasive change. Amendsfb56a0f2ce
. Pick-to: 6.8 6.5 Change-Id: Ia63ebfde59b1c5ef8ddb6c3f3ab10b28d5bf6cff Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commitf9d9630e9e
) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
af31f1f2c3
commit
573c39ff00
|
@ -861,7 +861,7 @@ void tst_QSplitter::replaceWidgetWhileHidden()
|
|||
newWidget->hide();
|
||||
|
||||
const bool wasExplicitHide = !widgetVisible && newWidget->testAttribute(Qt::WA_WState_ExplicitShowHide);
|
||||
splitter.replaceWidget(1, newWidget);
|
||||
const std::unique_ptr<QWidget> reaper{splitter.replaceWidget(1, newWidget)};
|
||||
|
||||
QCOMPARE(!widgetVisible && newWidget->testAttribute(Qt::WA_WState_ExplicitShowHide), wasExplicitHide);
|
||||
|
||||
|
|
Loading…
Reference in New Issue