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

PathAnimation causes app to hang if path moves along particular coordinates

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • None
    • 5.0.0
    • None
    • Mac OS 10.6 with qtdeclarative:animation-refactor branch at 67d8851e20aa50012d9360580af19f2f7476a093

    Description

      Tested on Mac OS 10.6 with qtdeclarative:animation-refactor branch at 67d8851e20aa50012d9360580af19f2f7476a093

      With the following code, press space to start the PathAnimation. Pressing space a second time to restart the animation causes the application to hang.

      The app does not hang if the second path below (commented out) is used instead.

      import QtQuick 2.0
      
      Item {
          id: root
          width: 800; height: 700
      
          Rectangle { id: ball; width: 50; height: 50; radius: 50; color: "red" }
      
          PathAnimation {
              id: anim
              duration: 1000
              target: ball
              path: Path {
                  startX: 200; startY: 280
                  PathCurve { x: 150; y: 280 }
                  PathCurve { x: 150; y: 80 }
                  PathCurve { x: 0; y: 80 }
              }
              /* 
              // this path does not hang the app
              path: Path {
                  startX: 200; startY: 280
                  PathCurve { x: 100; y: 230 }
                  PathCurve { x: 150; y: 80 }
                  PathCurve { x: 0; y: 80 }
              }
              */
          }
      
          focus: true
          Keys.onSpacePressed: {
              anim.restart()
          }
      }
      

      Force quitting the app gives this backtrace:

      ^C
      Program received signal SIGINT, Interrupt.
      0x000000010333de4f in QDeclarativePath::backwardsPointAt (path=@0x104e0e9b0, pathLength=@0x104e0ea68, attributePoints=@0x104e0e9c8, prevBez=@0x104e0e9e0, p=0, angle=0x0) at util/qdeclarativepath.cpp:613
      613	                prevLength = currLength - bezLength;
      (gdb) bt
      #0  0x000000010333de4f in QDeclarativePath::backwardsPointAt (path=@0x104e0e9b0, pathLength=@0x104e0ea68, attributePoints=@0x104e0e9c8, prevBez=@0x104e0e9e0, p=0, angle=0x0) at util/qdeclarativepath.cpp:613
      #1  0x000000010333e87a in QDeclarativePath::sequentialPointAt (path=@0x104e0e9b0, pathLength=@0x104e0ea68, attributePoints=@0x104e0e9c8, prevBez=@0x104e0e9e0, p=0, angle=0x0) at util/qdeclarativepath.cpp:526
      #2  0x000000010333e94a in QDeclarativePath::sequentialPointAt (this=0x104e0e890, p=0, angle=0x0) at util/qdeclarativepath.cpp:516
      #3  0x000000010348695b in QQuickPathAnimationUpdater::setValue (this=0x106147490, v=0) at items/qquickanimation.cpp:705
      #4  0x00000001032f3f69 in QDeclarativeBulkValueAnimator::updateCurrentTime (this=0x1061475a0, currentTime=0) at util/qdeclarativeanimation.cpp:1823
      #5  0x000000010072742e in QAbstractAnimation2::setCurrentTime (this=0x1061475a0, msecs=0) at animations/qabstractanimation2.cpp:704
      #6  0x00000001007270fa in QAbstractAnimation2::setState (this=0x1061475a0, newState=QAbstractAnimation2::Running) at animations/qabstractanimation2.cpp:566
      #7  0x00000001007276d6 in QAbstractAnimation2::start (this=0x1061475a0) at animations/qabstractanimation2.cpp:722
      #8  0x00000001032f8e0d in QDeclarativeAbstractAnimationPrivate::commence (this=0x104e0ca00) at util/qdeclarativeanimation.cpp:168
      #9  0x00000001032f915a in QDeclarativeAbstractAnimation::setRunning (this=0x104e0c950, r=true) at util/qdeclarativeanimation.cpp:227
      #10 0x00000001032f9330 in QDeclarativeAbstractAnimation::start (this=0x104e0c950) at util/qdeclarativeanimation.cpp:437
      #11 0x00000001032f9350 in QDeclarativeAbstractAnimation::restart (this=0x104e0c950) at util/qdeclarativeanimation.cpp:499
      #12 0x000000010353f7d1 in QDeclarativeAbstractAnimation::qt_static_metacall (_o=0x104e0c950, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fff5fbfba30) at .moc/debug-shared/moc_qdeclarativeanimation_p.cpp:100
      #13 0x000000010353fd43 in QDeclarativeAbstractAnimation::qt_metacall (this=0x104e0c950, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fff5fbfba30) at .moc/debug-shared/moc_qdeclarativeanimation_p.cpp:241
      #14 0x000000010356c168 in QQuickPathAnimation::qt_metacall (this=0x104e0c950, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0x7fff5fbfba30) at .moc/debug-shared/moc_qquickanimation_p.cpp:510
      #15 0x0000000100d05c60 in QMetaObject::metacall (object=0x104e0c950, cl=QMetaObject::InvokeMetaMethod, idx=10, argv=0x7fff5fbfba30) at kernel/qmetaobject.cpp:248
      #16 0x00000001006ddb7a in CallMethod (object=0x104e0c950, index=10, returnType=0, argCount=0, argTypes=0x0, engine=0x104d16310, callArgs=@0x7fff5fbfbe40) at qml/v8/qv8qobjectwrapper.cpp:1453
      #17 0x00000001006ddf88 in CallPrecise (object=0x104e0c950, data=@0x7fff5fbfbe10, engine=0x104d16310, callArgs=@0x7fff5fbfbe40) at qml/v8/qv8qobjectwrapper.cpp:1666
      #18 0x00000001006deaf4 in QV8QObjectWrapper::Invoke (args=@0x7fff5fbfc090) at qml/v8/qv8qobjectwrapper.cpp:1868
      #19 0x0000000101e63f49 in v8::internal::HandleApiCallHelper<false> (args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data fields>}, length_ = 7, arguments_ = 0x7fff5fbfc258}, <No data fields>}, isolate=0x10580f200) at ../3rdparty/v8/src/builtins.cc:1164
      #20 0x0000000101e640d1 in v8::internal::Builtin_Impl_HandleApiCall (args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data fields>}, length_ = 7, arguments_ = 0x7fff5fbfc258}, <No data fields>}, isolate=0x10580f200) at ../3rdparty/v8/src/builtins.cc:1181
      #21 0x0000000101e6412c in v8::internal::Builtin_HandleApiCall (args={<v8::internal::Arguments> = {<v8::internal::Embedded> = {<No data fields>}, length_ = 7, arguments_ = 0x7fff5fbfc258}, <No data fields>}, isolate=0x10580f200) at ../3rdparty/v8/src/builtins.cc:1180
      #22 0x0000273520e04402 in ?? ()
      #23 0x0000273520e388f0 in ?? ()
      

      (and more)

      Attachments

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

        Activity

          People

            brasser Michael Brasser (closed Nokia identity) (Inactive)
            bealam Bea Lam (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