<table><tr><td style="">davidedmundson added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D10250" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>My valgrind, using your test instructions is showing it is.</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">  at 0x75B5D3C: texture (qsgtexturematerial.h:58)
  by 0x75B5D3C: QSGSimpleTextureNode::texture() const (qsgsimpletexturenode.cpp:264)
  by 0x26044983: Plotter::render() (plotter.cpp:699)
  by 0x2604BFFF: QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Plotter::*)()>::call(void (Plotter::*)(), Plotter*, void**) (qobjectdefs_impl.h:136)
  by 0x2604BE22: void QtPrivate::FunctionPointer<void (Plotter::*)()>::call<QtPrivate::List<>, void>(void (Plotter::*)(), Plotter*, void**) (qobjectdefs_impl.h:169)
  by 0x2604B08C: QtPrivate::QSlotObject<void (Plotter::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:398)
  by 0xB8E1E86: call (qobjectdefs_impl.h:378)
  by 0xB8E1E86: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3749)
  by 0xB8E236A: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3628)
  by 0x764EC91: QQuickWindow::beforeRendering() (moc_qquickwindow.cpp:497)
  by 0x765202F: QQuickWindowPrivate::renderSceneGraph(QSize const&) (qquickwindow.cpp:452)
  by 0x75EE216: QSGRenderThread::syncAndRender() (qsgthreadedrenderloop.cpp:645)
  by 0x75F2EC0: QSGRenderThread::run() (qsgthreadedrenderloop.cpp:729)
  by 0xB6DF681: QThreadPrivate::start(void*) (qthread_unix.cpp:376)


Address 0x25699360 is 336 bytes inside a block of size 400 free'd
  at 0x4C2E64B: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
  by 0x5099B29: ManagedTextureNode::~ManagedTextureNode() (managedtexturenode.h:45)
  by 0x7597A3E: QSGNode::destroy() (qsgnode.cpp:390)
  by 0x7597AE1: QSGNode::~QSGNode() (qsgnode.cpp:328)
  by 0x7597C64: QSGTransformNode::~QSGTransformNode() (qsgnode.cpp:1185)
  by 0x7597C72: QSGTransformNode::~QSGTransformNode() (qsgnode.cpp:1187)
  by 0x7651EEE: QQuickWindowPrivate::cleanupNodes() (qquickwindow.cpp:3080)</pre></div>

<p>At which point after this patch we'll still be reading a QPointer in deleted memory, as that ManagedTextureNode is our m_node.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R296 KDeclarative</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D10250" rel="noreferrer">https://phabricator.kde.org/D10250</a></div></div><br /><div><strong>To: </strong>mart, Plasma, davidedmundson<br /><strong>Cc: </strong>davidedmundson, broulik, ngraham, plasma-devel, Frameworks, michaelh, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>