diff options
author | Martin Poirier <theeth@yahoo.com> | 2007-12-14 00:10:00 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2007-12-14 00:10:00 +0300 |
commit | 04dcd34883c258d2df661b4526c8a5e12605997d (patch) | |
tree | 496702dcdc47a50b4ede1507d82ec491aa70858a /source | |
parent | f15956356c7706c93152f4267cd1cea24b2c9e30 (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/src/transform_snap.c | 6 |
1 files 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; |