D10250: track the validity of the texture

David Edmundson noreply at phabricator.kde.org
Mon Feb 5 16:10:30 UTC 2018


davidedmundson added a comment.


  My valgrind, using your test instructions is showing it is.
  
      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)
  
  At which point after this patch we'll still be reading a QPointer in deleted memory, as that ManagedTextureNode is our m_node.

REPOSITORY
  R296 KDeclarative

REVISION DETAIL
  https://phabricator.kde.org/D10250

To: mart, #plasma, davidedmundson
Cc: davidedmundson, broulik, ngraham, plasma-devel, #frameworks, michaelh, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180205/ebd72702/attachment.html>


More information about the Kde-frameworks-devel mailing list