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

PathAnimation asserts with easing curves that cause an overshoot motion

    XMLWordPrintable

Details

    • b63ce68f316c91b0a3107d3d20e160628f5cefef

    Description

      1. Download attachment
      2. qmlscene <attachment>
      3. Select the bottom item
      4. Press the "To Top" button

      The QML has a move PathAnimation with an easing.type: Easing.InOutBack. As the item begins the "In" portion - which overshoots at the start - the appended assert occurs.

      This assert does not occur if the (commented out) easing.type: Easing.InOutQuad is used.

      If using the easing.type: Easing.OutBack option, the assert does not occur, but the application hangs (I believe looping somewhere in QDeclarativePath::forwardsPointAt / nextBezier)

      ASSERT: "!(currElement < firstElement)" in file util/qdeclarativepath.cpp, line 618
      
      Program received signal SIGABRT, Aborted.
      0xb7fe3832 in ?? () from /lib/ld-linux.so.2
      (gdb) bt
      #0  0xb7fe3832 in ?? () from /lib/ld-linux.so.2
      #1  0xb5b93651 in raise () from /lib/tls/i686/cmov/libc.so.6
      #2  0xb5b96a82 in abort () from /lib/tls/i686/cmov/libc.so.6
      #3  0xb5f73aa8 in qt_message_output (msgType=QtFatalMsg, context=..., buf=0x82be978 "ASSERT: \"!(currElement < firstElement)\" in file util/qdeclarativepath.cpp, line 618")
          at global/qlogging.cpp:710
      #4  0xb5f715dd in qt_message (msgType=QtFatalMsg, context=..., msg=0xb618afa0 "ASSERT: \"%s\" in file %s, line %d", ap=0xbfffe358 "\030E\351\267\341D\351\267j\002")
          at global/qlogging.cpp:124
      #5  0xb5f717f7 in QMessageLogger::fatal (this=0xbfffe370, msg=0xb618afa0 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:327
      #6  0xb5f6cec8 in qt_assert (assertion=0xb7e94518 "!(currElement < firstElement)", file=0xb7e944e1 "util/qdeclarativepath.cpp", line=618) at global/qglobal.cpp:1648
      #7  0xb7c24585 in QDeclarativePath::backwardsPointAt (path=..., pathLength=@0x82b22c4, attributePoints=..., prevBez=..., p=-5.1754392810246191e-06, angle=0x0)
          at util/qdeclarativepath.cpp:618
      #8  0xb7c23d18 in QDeclarativePath::sequentialPointAt (path=..., pathLength=@0x82b22c4, attributePoints=..., prevBez=..., p=-5.1754392810246191e-06, angle=0x0)
          at util/qdeclarativepath.cpp:535
      #9  0xb7d8e741 in QQuickPathAnimationUpdater::setValue (this=0x82b2258, v=-5.1754392810246191e-06) at items/qquickanimation.cpp:949
      #10 0xb7be2d24 in QDeclarativeBulkValueAnimator::updateCurrentTime (this=0x82b2340, currentTime=1) at util/qdeclarativeanimation.cpp:1827
      #11 0xb7a2481a in QAbstractAnimationJob::setCurrentTime (this=0x82b2340, msecs=1) at animations/qabstractanimationjob.cpp:437
      #12 0xb7a26d30 in QSequentialAnimationGroupJob::updateCurrentTime (this=0x82b20b0, currentTime=501) at animations/qsequentialanimationgroupjob.cpp:225
      #13 0xb7a2481a in QAbstractAnimationJob::setCurrentTime (this=0x82b20b0, msecs=501) at animations/qabstractanimationjob.cpp:437
      #14 0xb7a27912 in QParallelAnimationGroupJob::updateCurrentTime (this=0x82bfbd8) at animations/qparallelanimationgroupjob.cpp:114
      #15 0xb7a2481a in QAbstractAnimationJob::setCurrentTime (this=0x82bfbd8, msecs=501) at animations/qabstractanimationjob.cpp:437
      #16 0xb7a23572 in QDeclarativeAnimationTimer::updateAnimationsTime (this=0x80fde50, delta=1) at animations/qabstractanimationjob.cpp:112
      #17 0xb5f5b2d4 in QUnifiedTimer::updateAnimationTimers (this=0x80a43e8, currentTick=-1) at animation/qabstractanimation.cpp:286
      #18 0xb5f5d03b in QAnimationDriver::advanceAnimation (this=0x80d76e8, timeStep=-1) at animation/qabstractanimation.cpp:749
      #19 0xb5f5d079 in QAnimationDriver::advance (this=0x80d76e8) at animation/qabstractanimation.cpp:762
      #20 0xb7dba6eb in QQuickRenderThreadSingleContextWindowManager::event (this=0x80d7258, e=0x82892e0) at items/qquickwindowmanager.cpp:795
      #21 0xb691ba48 in QApplicationPrivate::notify_helper (this=0x807a880, receiver=0x80d7258, e=0x82892e0) at kernel/qapplication.cpp:4014
      #22 0xb6919291 in QApplication::notify (this=0xbffff258, receiver=0x80d7258, e=0x82892e0) at kernel/qapplication.cpp:3431
      #23 0xb60df0c3 in QCoreApplication::notifyInternal (this=0xbffff258, receiver=0x80d7258, event=0x82892e0) at kernel/qcoreapplication.cpp:699
      #24 0xb60e2c85 in QCoreApplication::sendEvent (receiver=0x80d7258, event=0x82892e0) at kernel/qcoreapplication.h:209
      #25 0xb60e0210 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8079bd8) at kernel/qcoreapplication.cpp:1335
      #26 0xb60dfcd1 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1196
      #27 0xb613d2e4 in QCoreApplication::sendPostedEvents () at kernel/qcoreapplication.h:214
      #28 0xb613b968 in postEventSourceDispatch (s=0x8086110) at kernel/qeventdispatcher_glib.cpp:279
      #29 0xb5a8c5e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
      #30 0xb5a902d8 in ?? () from /lib/libglib-2.0.so.0
      #31 0xb5a904b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
      #32 0xb613c99c in QEventDispatcherGlib::processEvents (this=0x807f2c0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
      #33 0xb60dbeb2 in QEventLoop::processEvents (this=0xbffff1ac, flags=...) at kernel/qeventloop.cpp:135
      #34 0xb60dc16f in QEventLoop::exec (this=0xbffff1ac, flags=...) at kernel/qeventloop.cpp:211
      #35 0xb60df743 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:951
      #36 0xb63fe3b5 in QGuiApplication::exec () at kernel/qguiapplication.cpp:575
      #37 0xb6918f14 in QApplication::exec () at kernel/qapplication.cpp:3317
      #38 0x0804da7e in main (argc=2, argv=0xbffff3e4) at main.cpp:431
      

      Attachments

        For Gerrit Dashboard: QTBUG-24308
        # Subject Branch Project Status CR V

        Activity

          People

            charles Charles Yin (closed Nokia identity) (Inactive)
            dajansen Damian Jansen (closed Nokia identity) (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes