From 04dcd34883c258d2df661b4526c8a5e12605997d Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 13 Dec 2007 21:10:00 +0000 Subject: [PATCH] Correct aweful bug in transform snapping code. How that even work is beyond magic! Reported by some (crash) and pin pointed by Briggs, thanks a lot! This should fix the apparently completely random crashes. --- source/blender/src/transform_snap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/blender/src/transform_snap.c b/source/blender/src/transform_snap.c index d62d49c2de8..355c150657e 100644 --- a/source/blender/src/transform_snap.c +++ b/source/blender/src/transform_snap.c @@ -471,12 +471,13 @@ void TargetSnapMedian(TransInfo *t) if ((t->tsnap.status & TARGET_INIT) == 0) { TransData *td = NULL; + int i; t->tsnap.snapTarget[0] = 0; t->tsnap.snapTarget[1] = 0; t->tsnap.snapTarget[2] = 0; - for (td = t->data; td != NULL && td->flag & TD_SELECTED ; td++) + for(td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) { VecAddf(t->tsnap.snapTarget, t->tsnap.snapTarget, td->iloc); } @@ -514,7 +515,8 @@ void TargetSnapClosest(TransInfo *t) // More than one selected item else { - for (td = t->data; td != NULL && td->flag & TD_SELECTED ; td++) + int i; + for(td = t->data, i = 0 ; i < t->total && td->flag & TD_SELECTED ; i++, td++) { float loc[3]; float dist;