Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-80326

Calling destroy() of a item written by C++ which inherit QQuickItem, there's a chance it'll crash.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • Not Evaluated
    • None
    • 5.13.2
    • Quick: SceneGraph
    • None
    • Windows

    Description

      Call stack as below: 

      //代码占位符
      1  QSGBatchRenderer::Renderer::renderMergedBatch qsgbatchrenderer.cpp        2277 0x2aeb0ec6     
      2  QSGBatchRenderer::Renderer::renderBatches     qsgbatchrenderer.cpp        2532 0x2aeb2ab0     
      3  QSGBatchRenderer::Renderer::render            qsgbatchrenderer.cpp        2735 0x2aeb79d7     
      4  QSGRenderer::renderScene                      qsgrenderer.cpp             244  0x2aea6b63     
      5  QSGRenderer::renderScene                      qsgrenderer.cpp             197  0x2aea6ff7     
      6  QSGDefaultRenderContext::renderNextFrame      qsgdefaultrendercontext.cpp 182  0x2aee3404     
      7  QQuickWindowPrivate::renderSceneGraph         qquickwindow.cpp            487  0x2af3a625     
      8  QSGRenderThread::syncAndRender                qsgthreadedrenderloop.cpp   646  0x2aeef591     
      9  QSGRenderThread::run                          qsgthreadedrenderloop.cpp   730  0x2aef301b     
      10 QThreadPrivate::start                         qthread_win.cpp             405  0x6fdc6cea     
      11 KERNEL32!BaseThreadInitThunk                                                   0x7ffad8847bd4 
      12 ntdll!RtlUserThreadStart                                                       0x7ffad8f2ce71 
      13 ??                                                                                            
      

      The breaking code is:

      updateClip(gn->clipList(), batch);

      The list of variables:

      batch	@0x97f32b90	QSGBatchRenderer::Batch
      dirty	<optimized out>	
      e	@0x2a2adf8	QSGBatchRenderer::Element
      gn	0x0	QSGGeometryNode*
      rootMatrix	@0x9b2bf7b0	QMatrix4x4
      separateIndexBuffer	<optimized out>	
      this	@0x997f4640	QSGBatchRenderer::Renderer
      vOffset	<optimized out>	

      I think the reason for the crash is null pointer “gn(0x0)” be referenced.

      Well, this bug make my app quick uncertain, and I took a lot of time to get to this point, I always reproduct this crash in debuger now.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            janichol Andy Nichols
            je0000 Jadyn Zhou
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes