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

Particle engine crashes if ItemParticle transitions between groups

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 5.12.0, 5.13.0
    • Quick: Particles
    • None
    • Linux/X11

    Description

      The following code triggers a crash as soon the particle moves between the groups (after clicking the button):

      iimport QtQuick 2.0
      import QtQuick.Window 2.12
      import QtQuick.Particles 2.0
      import QtQuick.Controls 2.0
      
      Window {
          visible: true
          width: 640
          height: 480
          title: qsTr("Hello World")
      
          Rectangle {
              id: root
              anchors.fill: parent
      
              ParticleSystem {
                  id: particleSystem
      
                  ParticleGroup {
                      name: "pre-bounce"
                      duration: 5000
                      to: {"post-bounce": 1}
                  }
      
                  ParticleGroup {
                      name: "post-bounce"
                      duration: 5000
                  }
      
                  Emitter {
                      id: emitter
                      emitRate: 0
                      lifeSpan: 10000
      
                      group: 'pre-bounce'
      
                      acceleration: AngleDirection {
                          angle: 90
                          magnitude: 1
                      }
      
                      velocity: AngleDirection {
                          angle: -90
                          angleVariation: 15
                          magnitude: 1
                          magnitudeVariation: 0
                      }
                  }
      
                  ItemParticle {
                      id: itemParticle
                      groups: ['pre-bounce', 'post-bounce']
      
                      delegate: Text {text: "dummy"}
                  }
      
      //            Component {
      //                id: component
      
      //                Text {
      //                    text: "asdfsdfafsd"
      //                    ItemParticle.onDetached: destroy();
      //                }
      //            }
              }
      
      
      
              Button {
                  property int i: 0
                  onClicked: {
      //                let particle = component.createObject(itemParticle);
      //                particle.text = "overriden" + ++i
      //                itemParticle.take(particle)
                      emitter.burst(1, 200, 200)
                  }
                  text: "spawn"
              }
          }
      }
      
      

      Backtrace:

      
      Thread 7 (Thread 0x7fffd8e01700 (LWP 23575)):
      #0  0x00007ffff59573c5 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
      #1  0x00007ffff5f92d83 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0xc40800) at thread/qwaitcondition_unix.cpp:146
              code = <optimized out>
      #2  0x00007ffff5f92d83 in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x6b8ba0, deadline=...) at thread/qwaitcondition_unix.cpp:225
      #3  0x00007ffff5f930a9 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x6b8ba8, mutex=mutex@entry=0x6b8ba0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
      #4  0x00007ffff7ae9c8d in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x6b8b98) at scenegraph/qsgthreadedrenderloop.cpp:245
              e = 0x0
      #5  0x00007ffff7ae9c8d in QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x6b8b20) at scenegraph/qsgthreadedrenderloop.cpp:710
              e = 0x0
      #6  0x00007ffff7aea0c1 in QSGRenderThread::run() (this=0x6b8b20) at scenegraph/qsgthreadedrenderloop.cpp:739
      #7  0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x6b8b20) at thread/qthread_unix.cpp:360
              thr = 0x6b8b20
              data = 0x6b3a10
              __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x6b8b20, __do_it = 1, __cancel_type = <optimized out>}
      #8  0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0
      #9  0x00007ffff5a66553 in clone () at /lib64/libc.so.6
      
      Thread 6 (Thread 0x7fffdbfff700 (LWP 23574)):
      #0  0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6
      #1  0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
      #2  0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
      #3  0x00007ffff61bb18f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffd0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
              d = 0x7fffd0000b40
              canWait = true
              savedFlags = {i = 0}
              result = <optimized out>
      #4  0x00007ffff6161902 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffdbffee00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
              d = 0x7fffd0002e00
              locker = {val = 4393936}
              ref = {d = 0x7fffd0002e00, locker = @0x7fffdbffed90, exceptionCaught = true}
      #5  0x00007ffff5f8a53c in QThread::exec() (this=this@entry=0x6260e0) at thread/qthread.cpp:531
              d = 0x430b60
              locker = {val = 4393936}
              eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6687108 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x7fffd0002e00}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352580 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff6352520 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff6161620 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              returnCode = <optimized out>
      #6  0x00007ffff758cd85 in QQmlThreadPrivate::run() (this=0x6260e0) at qml/ftw/qqmlthread.cpp:152
      #7  0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x6260e0) at thread/qthread_unix.cpp:360
              thr = 0x6260e0
              data = 0x5a7b80
              __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x6260e0, __do_it = 1, __cancel_type = <optimized out>}
      #8  0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0
      #9  0x00007ffff5a66553 in clone () at /lib64/libc.so.6
      
      Thread 5 (Thread 0x7fffe8a6e700 (LWP 23572)):
      #0  0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6
      #1  0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
      #2  0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
      #3  0x00007ffff61bb18f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffd4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
              d = 0x7fffd4000b40
              canWait = true
              savedFlags = {i = 0}
              result = <optimized out>
      #4  0x00007ffff6161902 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffe8a6ddf0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
              d = 0x7fffd4001d70
              locker = {val = 6109952}
              ref = {d = 0x7fffd4001d70, locker = @0x7fffe8a6dd80, exceptionCaught = true}
      #5  0x00007ffff5f8a53c in QThread::exec() (this=this@entry=0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:531
              d = 0x5d3a90
              locker = {val = 6109952}
              eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6687108 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x7fffd4001d70}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352580 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff6352520 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff6161620 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              returnCode = <optimized out>
      #6  0x00007fffebe3cc15 in QDBusConnectionManager::run() (this=0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
              locker = <optimized out>
      #7  0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:360
              thr = 0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>
              data = 0x6790b0
              __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x7fffec0b1d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>, __do_it = 1, __cancel_type = <optimized out>}
      #8  0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0
      #9  0x00007ffff5a66553 in clone () at /lib64/libc.so.6
      
      Thread 4 (Thread 0x7fffe95f8700 (LWP 23571)):
      #0  0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6
      #1  0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
      #2  0x00007ffff357a593 in g_main_loop_run () at /lib64/libglib-2.0.so.0
      #3  0x00007fffea73bd9a in gdbus_shared_thread_func () at /lib64/libgio-2.0.so.0
      #4  0x00007ffff35a34c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0
      #5  0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0
      #6  0x00007ffff5a66553 in clone () at /lib64/libc.so.6
      
      Thread 3 (Thread 0x7fffe9df9700 (LWP 23570)):
      #0  0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6
      #1  0x00007ffff357a1ce in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
      #2  0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
      #3  0x00007ffff357a351 in glib_worker_main () at /lib64/libglib-2.0.so.0
      #4  0x00007ffff35a34c2 in g_thread_proxy () at /lib64/libglib-2.0.so.0
      #5  0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0
      #6  0x00007ffff5a66553 in clone () at /lib64/libc.so.6
      
      Thread 2 (Thread 0x7fffebaa3700 (LWP 23569)):
      #0  0x00007ffff5a5bae7 in poll () at /lib64/libc.so.6
      #1  0x00007ffff324b38a in  () at /lib64/libxcb.so.1
      #2  0x00007ffff324cffa in xcb_wait_for_event () at /lib64/libxcb.so.1
      #3  0x00007fffec230168 in QXcbEventQueue::run() (this=0x4259b0) at qxcbeventqueue.cpp:228
              event = <optimized out>
              tail = 0x7fffec567058 <QXcbEventQueue::qXcbEventNodeFactory(xcb_generic_event_t*)::qXcbNodePool+1656>
              enqueueEvent = {__tail = <synthetic pointer><error reading variable>, __this = 0x4259b0}
      #4  0x00007ffff5f8ba73 in QThreadPrivate::start(void*) (arg=0x4259b0) at thread/qthread_unix.cpp:360
              thr = 0x4259b0
              data = 0x425180
              __clframe = {__cancel_routine = 0x7ffff5f8ad10 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x4259b0, __do_it = 1, __cancel_type = <optimized out>}
      #5  0x00007ffff59514c0 in start_thread () at /lib64/libpthread.so.0
      #6  0x00007ffff5a66553 in clone () at /lib64/libc.so.6
      
      Thread 1 (Thread 0x7ffff3234e80 (LWP 23560)):
      #0  0x00007ffff7b21114 in QQuickItem::setOpacity(double) (this=this@entry=0x9306b0, newOpacity=newOpacity@entry=0) at items/qquickitem.cpp:5843
      #1  0x00007fffda7599cc in QQuickItemParticle::processDeletables() (this=this@entry=0x5be000) at qquickitemparticle.cpp:171
              idx = <optimized out>
              item = 0x9306b0
              _container_ = {c = {<QListSpecialMethods<QQuickItem*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x930960}, d = 0x930960}}, i = {i = 0x930970}, e = {i = 0x930978}, control = 1}
      #2  0x00007fffda7599f6 in QQuickItemParticle::tick(int) (this=0x5be000, time=<optimized out>) at qquickitemparticle.cpp:189
      #3  0x00007ffff75a9ac8 in QAbstractAnimationJob::setCurrentTime(int) (this=0x6b8880, msecs=<optimized out>) at animations/qabstractanimationjob.cpp:488
              prevWasDeleted = 0x0
              wasDeleted = false
              dura = <optimized out>
              totalDura = -1
              oldLoop = 0
      #4  0x00007ffff75a9c5c in QQmlAnimationTimer::updateAnimationsTime(long long) (this=0x6e0720, delta=17) at animations/qabstractanimationjob.cpp:111
              animation = <optimized out>
              elapsed = <optimized out>
              delta = 17
              this = 0x6e0720
      #5  0x00007ffff5f6fcf2 in QUnifiedTimer::updateAnimationTimers(long long) (this=0xb33ce0, currentTick=<optimized out>) at animation/qabstractanimation.cpp:323
              animation = 0x6e0720
              totalElapsed = <optimized out>
              delta = 17
              currentTick = <optimized out>
              this = 0xb33ce0
      #6  0x00007ffff5f7083c in QAnimationDriver::advanceAnimation(long long) (this=<optimized out>, timeStep=-1) at animation/qabstractanimation.cpp:823
              instance = 0xb33ce0
      #7  0x00007ffff7ac13b2 in QSGAnimationDriver::advance() (this=0x6ed5a0) at scenegraph/qsgcontext.cpp:218
              delta = <optimized out>
      #8  0x00007ffff7ae7db6 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) (this=this@entry=0x5f8100, w=<optimized out>, inExpose=inExpose@entry=false) at scenegraph/qsgthreadedrenderloop.cpp:1223
              window = 0x620d00
              timer = {t1 = -9223372036854775808, t2 = -9223372036854775808}
              polishTime = 0
              waitTime = 0
              syncTime = 0
      #9  0x00007ffff7ae7f9a in QSGThreadedRenderLoop::handleUpdateRequest(QQuickWindow*) (this=0x5f8100, window=0x620d00) at scenegraph/qsgthreadedrenderloop.cpp:1036
      #10 0x00007ffff7b43181 in QQuickWindow::event(QEvent*) (this=0x620d00, e=0x7fffffffdf90) at items/qquickwindow.cpp:1664
      #11 0x00007ffff6162ea8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x620d00, event=0x7fffffffdf90) at kernel/qcoreapplication.cpp:1065
              selfRequired = true
              result = false
              cbdata = {0x620d00, 0x7fffffffdf90, 0x7fffffffdf3f}
              d = <optimized out>
              threadData = 0x4206f0
              scopeLevelCounter = {threadData = 0x4206f0}
      #12 0x00007ffff616305e in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=receiver@entry=0x620d00, event=event@entry=0x7fffffffdf90) at kernel/qcoreapplication.cpp:1460
      #13 0x00007ffff67dbc26 in QPlatformWindow::deliverUpdateRequest() (this=<optimized out>) at kernel/qplatformwindow.cpp:787
              w = 0x620d00
              wp = <optimized out>
              request = {_vptr.QEvent = 0x7ffff6687350 <vtable for QEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6353460 <qt_meta_stringdata_QEvent>, data = 0x7ffff6352ea0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 77, posted = 0, spont = 0, m_accept = 1, reserved = 10}
      #14 0x00007ffff67dbc26 in QPlatformWindow::windowEvent(QEvent*) (this=0xb4db90, event=<optimized out>) at kernel/qplatformwindow.cpp:478
      #15 0x00007ffff67e58b6 in QGuiApplication::notify(QObject*, QEvent*) (this=0x7fffffffe350, object=0x620d00, event=0x7fffffffe090) at kernel/qguiapplication.cpp:1796
      #16 0x00007ffff6162ea8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x620d00, event=0x7fffffffe090) at kernel/qcoreapplication.cpp:1065
              selfRequired = true
              result = false
              cbdata = {0x620d00, 0x7fffffffe090, 0x7fffffffe00f}
              d = <optimized out>
              threadData = 0x4206f0
              scopeLevelCounter = {threadData = 0x4206f0}
      #17 0x00007ffff616305e in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=event@entry=0x7fffffffe090) at kernel/qcoreapplication.cpp:1460
      #18 0x00007ffff61ba649 in QTimerInfoList::activateTimers() (this=0x614d30) at kernel/qtimerinfo_unix.cpp:643
              e = {<QEvent> = {_vptr.QEvent = 0x7ffff6687370 <vtable for QTimerEvent+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6353460 <qt_meta_stringdata_QEvent>, data = 0x7ffff6352ea0 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 1, posted = 0, spont = 0, m_accept = 1, reserved = 10}, id = 1}
              currentTimerInfo = 0x0
              n_act = 1
              maxCount = <optimized out>
              currentTime = {tv_sec = 10572, tv_nsec = 55941255}
      #19 0x00007ffff61bae59 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
              timerSource = <optimized out>
              timerSource = <optimized out>
      #20 0x00007ffff61bae59 in idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230
              timerSource = <optimized out>
      #21 0x00007ffff3579ecd in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
      #22 0x00007ffff357a260 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
      #23 0x00007ffff357a303 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
      #24 0x00007ffff61bb18f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x611530, flags=...) at kernel/qeventdispatcher_glib.cpp:423
              d = 0x5dda70
              canWait = true
              savedFlags = {i = 0}
              result = <optimized out>
      #25 0x00007ffff6161902 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffe2c0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
              d = 0xcb0260
              locker = {val = 4327424}
              ref = {d = 0xcb0260, locker = @0x7fffffffe250, exceptionCaught = true}
      #26 0x00007ffff616a260 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1373
              threadData = 0x4206f0
              eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff6687108 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0xcb0260}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352580 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff6352520 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff6161620 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              returnCode = <optimized out>
      #27 0x0000000000402463 in main(int, char**) (argc=1, argv=0x7fffffffe488) at /home/ablu/qt-tests/particles/simple-test/main.cpp:19
              app = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7ffff6ec49d0 <vtable for QGuiApplication+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x4205c0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff6352bc0 <qt_meta_stringdata_QCoreApplication>, data = 0x7ffff6352aa0 <qt_meta_data_QCoreApplication>, static_metacall = 0x7ffff6164980 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fffffffe350}, static staticMetaObject = {d = {superdata = 0x7ffff66872a0 <QCoreApplication::staticMetaObject>, stringdata = 0x7ffff6bc17e0 <qt_meta_stringdata_QGuiApplication>, data = 0x7ffff6bc1560 <qt_meta_data_QGuiApplication>, static_metacall = 0x7ffff67e4740 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              engine = {<QQmlEngine> = {<QJSEngine> = {<QObject> = {_vptr.QObject = 0x7ffff791dec8 <vtable for QQmlApplicationEngine+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff6357be0 <qt_meta_stringdata_QObject>, data = 0x7ffff6357ac0 <qt_meta_data_QObject>, static_metacall = 0x7ffff6197ee0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5ec400}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7ffff635ab00 <qt_meta_stringdata_Qt>, data = 0x7ffff6357d00 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff667f400 <QObject::staticMetaObject>, stringdata = 0x7ffff762fb60 <qt_meta_stringdata_QJSEngine>, data = 0x7ffff762fb20 <qt_meta_data_QJSEngine>, static_metacall = 0x7ffff73c8ac0 <QJSEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_v4Engine = 0x63d800}, static staticMetaObject = {d = {superdata = 0x7ffff7914940 <QJSEngine::staticMetaObject>, stringdata = 0x7ffff7641000 <qt_meta_stringdata_QQmlEngine>, data = 0x7ffff7640f40 <qt_meta_data_QQmlEngine>, static_metacall = 0x7ffff74e8d20 <QQmlEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x7ffff791c0c0 <QQmlEngine::staticMetaObject>, stringdata = 0x7ffff7646880 <qt_meta_stringdata_QQmlApplicationEngine>, data = 0x7ffff7646780 <qt_meta_data_QQmlApplicationEngine>, static_metacall = 0x7ffff7569080 <QQmlApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
              url = {d = 0x6dd030}
      

      Analysis:

      This seems to happen because lifetime of the QQuickParticleData is set to 0. This triggers a pre-mature deletion of the item in QQuickItemParticle::processDeletables().

      Attachments

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

        Activity

          People

            w00t Robin Burchell
            ablu Erik Schilling
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes