diff options
author | Määttä Antti <antti.maatta@qt.io> | 2017-06-19 11:13:41 +0300 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2017-06-21 11:03:29 +0000 |
commit | 927cdc4bde6a152fcd0a64729946831477f27913 (patch) | |
tree | 48502ba55616b853a2789e7ef247ead0716bc3d0 /tests | |
parent | 920e9ecef384058e8f44eea09dfafda03a9ec435 (diff) |
Fix QRenderCaptureReply deallocation
Add deallocation guard and set parent of the reply.
Task-number: QTBUG-61508
Change-Id: Ia299450d792b2254c2944472382c8241b271ebf6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/qrendercapture/tst_qrendercapture.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/render/qrendercapture/tst_qrendercapture.cpp b/tests/auto/render/qrendercapture/tst_qrendercapture.cpp index e0037f3dd..d4e603ea4 100644 --- a/tests/auto/render/qrendercapture/tst_qrendercapture.cpp +++ b/tests/auto/render/qrendercapture/tst_qrendercapture.cpp @@ -105,6 +105,27 @@ private Q_SLOTS: QCOMPARE(reply->image().height(), 20); QCOMPARE(reply->image().format(), QImage::Format_ARGB32); } + + void checkRenderCaptureDestroy() + { + // GIVEN + QScopedPointer<MyRenderCapture> renderCapture(new MyRenderCapture()); + QScopedPointer<Qt3DRender::QRenderCaptureReply> reply(renderCapture->requestCapture()); + QImage img = QImage(20, 20, QImage::Format_ARGB32); + Qt3DRender::RenderCaptureDataPtr data = Qt3DRender::RenderCaptureDataPtr::create(); + data.data()->captureId = 2; + data.data()->image = img; + auto e = Qt3DCore::QPropertyUpdatedChangePtr::create(renderCapture->id()); + e->setDeliveryFlags(Qt3DCore::QSceneChange::DeliverToAll); + e->setPropertyName("renderCaptureData"); + e->setValue(QVariant::fromValue(data)); + + // WHEN + reply.reset(); + + // THEN + renderCapture->sceneChangeEvent(e); // Should not reset + } }; QTEST_MAIN(tst_QRenderCapture) |