Crash when trying to adjust Frame in Graph Editor
Closed, ResolvedPublic

Description

windows 7 64 bit

Broken: 2.77a , blender-2.77-566dd4e-win64.zip

Short description of error

Crash when adjusting slider in Graph editor at active keyframe on Frame slider

Exact steps for others to reproduce the error

in Graph editor when clicking and holding on Frame and value sliders to adjust by dragging mouse then blender crashed, tryed many times and working every time.

Joshua Leung (aligorith) triaged this task as "Incomplete" priority.Aug 7 2016, 4:22 PM

Have you checked whether this still happens for you in the current test builds (https://builder.blender.org/download)?

I can't reproduce any crashes here from a clean file in current master. If you're still having crashes, could you upload a file where this is happening so that we can check if there are any other hidden factors at play here.

hi, i tryed yesterday the newest daily release of 7.8.2016. just found out how to reproduce it. if i click on frame and value and decrease it till it hits 0 on timeline then it crashes, blender immediatly closes... here is screenshot and blend file{F334245}

Joshua Leung (aligorith) raised the priority of this task from "Incomplete" to "Confirmed".Aug 8 2016, 1:39 PM

Ah.. you need to drag down (to start dragging both) before starting to move left/right. Indeed this crashes. Will investigate :)

This is use-after-free issue.

@Campbell Barton (campbellbarton), AFAIR, multibut edit is your area, mind having a look here? Or maybe @Julian Eisel (Severin) likes such a reports?

An update:
So this seems to happen when you move the keyframe past the other keyframes, triggering the keyframe sorting (sort_time_fcurve()) . Disabling that step solves the crash here, but is kindof undesirable in that the curve doesn't get resorted/recalculated.

Do we have any callbacks that we only run after all interaction with a button is finished? If we do, we could just defer this curve sorting till then?

Committed fix, though the case of buttons force-exiting drag isn't well supported (undo pushes aren't made for eg).

Ideally it would work so this case would have the same logic as releasing the mouse cursor.