Commit: 9f3b0e41bbc5529444e47395e14cded89614c493 Author: Philipp Oeser Date: Thu Dec 1 10:10:33 2022 +0100 Branches: master https://developer.blender.org/rB9f3b0e41bbc5529444e47395e14cded89614c493
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 =================================================================== M source/blender/blenkernel/intern/tracking.c M source/blender/editors/space_clip/clip_utils.c =================================================================== diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index d71c0cc4bf9..f53e32a70c2 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -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); } diff --git a/source/blender/editors/space_clip/clip_utils.c b/source/blender/editors/space_clip/clip_utils.c index 53aca35c997..3e621a39dcb 100644 --- a/source/blender/editors/space_clip/clip_utils.c +++ b/source/blender/editors/space_clip/clip_utils.c @@ -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]; _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
