diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-12-31 07:45:31 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-12-31 07:45:31 +0400 |
commit | 39ef41a0223dd45d97fda022269fa61357e78a79 (patch) | |
tree | 492ea9ce13e139fbc2ea50bc356bf0586ab4ede9 /source/blender | |
parent | ba8d1b940f1b462dd86f01dfb88478b64572a258 (diff) |
fix [#29735] Blender crashes with ACCESS_VIOLATION when snapping cursor to camera
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_snap.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index a2173537c8c..ac1c71cd344 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -758,16 +758,17 @@ void VIEW3D_OT_snap_cursor_to_grid(wmOperatorType *ot) static void bundle_midpoint(Scene *scene, Object *ob, float vec[3]) { MovieClip *clip= object_get_movieclip(scene, ob, 0); - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *object= tracking->objects.first; + MovieTracking *tracking; + MovieTrackingObject *object; int ok= 0; - float min[3], max[3], mat[4][4], pos[3], cammat[4][4]; + float min[3], max[3], mat[4][4], pos[3], cammat[4][4] = MAT4_UNITY; if(!clip) return; - unit_m4(cammat); + tracking= &clip->tracking; + /* XXX - seems like an unneeded side effect, snapping should _not_ set the active camera for eg. - campbell */ if(!scene->camera) scene->camera= scene_find_camera(scene); @@ -778,7 +779,7 @@ static void bundle_midpoint(Scene *scene, Object *ob, float vec[3]) INIT_MINMAX(min, max); - while(object) { + for (object= tracking->objects.first; object; object= object->next) { ListBase *tracksbase= BKE_tracking_object_tracks(tracking, object); MovieTrackingTrack *track= tracksbase->first; float obmat[4][4]; @@ -804,8 +805,6 @@ static void bundle_midpoint(Scene *scene, Object *ob, float vec[3]) track= track->next; } - - object= object->next; } if(ok) { |