tst_QGraphicsScene: fix memleaks in taskQTBUG_7863_paintIntoCacheWithTransparentParts()

The test function created QGraphicScene objects on the heap, but never
deleted them. They were added to a View, yes, but a view doesn't own
the scene it renders, so this didn't help.

Fix by creating the scenes on the stack instead.

Amends the start of the public history.

Pick-to: 6.8 6.5 5.15
Change-Id: I939e028dbfd68b216ef67c3773f085ba98817b05
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit d8b79dc1c949cd4cb5472f53545fbdd94f6e5b3b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marc Mutz 2025-03-24 15:59:45 +01:00 committed by Qt Cherry-pick Bot
parent 081023ec0e
commit eba728f1a3

View File

@ -4450,13 +4450,13 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts()
rectItem->setBrush(QColor(0, 0, 255, 125));
rectItem->setParentItem(backItem);
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsScene scene;
CustomView view;
view.resize(m_testSize);
view.setWindowTitle(QTest::currentTestFunction());
view.setScene(scene);
view.setScene(&scene);
scene->addItem(backItem);
scene.addItem(backItem);
rectItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
backItem->setTransform(QTransform().rotate(15), true);
@ -4491,13 +4491,13 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts()
QGraphicsRectItem *rectItem = new QGraphicsRectItem(0, 0, 50, 50);
rectItem->setBrush(QColor(0, 0, 255));
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsScene scene;
CustomView view;
view.setWindowTitle(QTest::currentTestFunction());
view.resize(m_testSize);
view.setScene(scene);
view.setScene(&scene);
scene->addItem(rectItem);
scene.addItem(rectItem);
rectItem->setCacheMode(QGraphicsItem::ItemCoordinateCache);
rectItem->setTransform(QTransform().rotate(15), true);
@ -4531,13 +4531,13 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts()
QGraphicsRectItem *rectItem = new QGraphicsRectItem(0, 0, 50, 50);
rectItem->setBrush(QColor(0, 0, 255, 125));
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsScene scene;
CustomView view;
view.setWindowTitle(QTest::currentTestFunction());
view.resize(m_testSize);
view.setScene(scene);
view.setScene(&scene);
scene->addItem(rectItem);
scene.addItem(rectItem);
rectItem->setCacheMode(QGraphicsItem::ItemCoordinateCache);
rectItem->setTransform(QTransform().rotate(15), true);