Fix T102887: crash deleting plane track
Two things here: - fix ghash lookup from rB4d497721ecd1 -- this was looking in the wrong map (causing an assert on file load) - set MovieTrackingObject active_plane_track to NULL upon deletion (same as for regular tracks) -- rBfe38715600c introduced a crash because `draw_tracking_tracks` would still get an active plane track (logic for getting these changed) Maniphest Tasks: T102887 Differential Revision: https://developer.blender.org/D16660
This commit is contained in:
parent
3cebc58936
commit
9f3b0e41bb
Notes:
blender-bot
2023-02-14 12:01:57 +01:00
Referenced by issue #102887, Crash after deleting Plane track
|
@ -275,7 +275,7 @@ static void tracking_object_copy(MovieTrackingObject *tracking_object_dst,
|
|||
}
|
||||
if (tracking_object_src->active_plane_track) {
|
||||
tracking_object_dst->active_plane_track = BLI_ghash_lookup(
|
||||
ctx.old_to_new_track_map, tracking_object_src->active_plane_track);
|
||||
ctx.old_to_new_plane_track_map, tracking_object_src->active_plane_track);
|
||||
BLI_assert(tracking_object_dst->active_plane_track != NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -362,6 +362,11 @@ void clip_delete_plane_track(bContext *C, MovieClip *clip, MovieTrackingPlaneTra
|
|||
{
|
||||
MovieTracking *tracking = &clip->tracking;
|
||||
MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(&clip->tracking);
|
||||
|
||||
if (plane_track == tracking_object->active_plane_track) {
|
||||
tracking_object->active_plane_track = NULL;
|
||||
}
|
||||
|
||||
/* Delete f-curves associated with the track (such as weight, i.e.) */
|
||||
/* Escaped object name, escaped track name, rest of the path. */
|
||||
char rna_path[MAX_NAME * 4 + 64];
|
||||
|
|
Loading…
Reference in New Issue