Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-12-31 07:45:31 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-31 07:45:31 +0400
commit39ef41a0223dd45d97fda022269fa61357e78a79 (patch)
tree492ea9ce13e139fbc2ea50bc356bf0586ab4ede9 /source/blender/editors
parentba8d1b940f1b462dd86f01dfb88478b64572a258 (diff)
fix [#29735] Blender crashes with ACCESS_VIOLATION when snapping cursor to camera
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_view3d/view3d_snap.c13
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) {