[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54875] trunk/blender/source/blender/ editors/transform/transform.c: fix [#34415] Edge slide results in segmentation fault on certain mesh
Campbell Barton
ideasman42 at gmail.com
Tue Feb 26 04:20:13 CET 2013
Revision: 54875
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54875
Author: campbellbarton
Date: 2013-02-26 03:20:10 +0000 (Tue, 26 Feb 2013)
Log Message:
-----------
fix [#34415] Edge slide results in segmentation fault on certain mesh
Modified Paths:
--------------
trunk/blender/source/blender/editors/transform/transform.c
Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c 2013-02-26 02:36:58 UTC (rev 54874)
+++ trunk/blender/source/blender/editors/transform/transform.c 2013-02-26 03:20:10 UTC (rev 54875)
@@ -5285,6 +5285,7 @@
TransDataEdgeSlideVert *sv;
/* XXX, 'sv' will initialize multiple times, this is suspicious. see [#34024] */
+ BLI_assert(BLI_smallhash_haskey(&table, (uintptr_t)v) != false);
sv = sv_array + GET_INT_FROM_POINTER(BLI_smallhash_lookup(&table, (uintptr_t)v));
sv->v = v;
sv->origvert = *v;
@@ -5307,6 +5308,7 @@
e1 = e;
e = get_other_edge(v, e);
if (!e) {
+ BLI_assert(BLI_smallhash_haskey(&table, (uintptr_t)v) != false);
sv = sv_array + GET_INT_FROM_POINTER(BLI_smallhash_lookup(&table, (uintptr_t)v));
sv->v = v;
sv->origvert = *v;
@@ -5331,6 +5333,12 @@
l1 = get_next_loop(v, l1, e1, e, vec);
l2 = l2 ? get_next_loop(v, l2, e1, e, vec2) : NULL;
+ if (UNLIKELY(l1 == NULL && l2 != NULL)) {
+ l1 = l2;
+ l2 = NULL;
+ swap_v3_v3(vec, vec2);
+ }
+
BM_elem_flag_disable(v, BM_ELEM_TAG);
BM_elem_flag_disable(v2, BM_ELEM_TAG);
} while (e != v_first->e && l1);
@@ -5372,6 +5380,7 @@
continue;
}
+ BLI_assert(BLI_smallhash_haskey(&table, (uintptr_t)v) != false);
j = GET_INT_FROM_POINTER(BLI_smallhash_lookup(&table, (uintptr_t)v));
if (sv_array[j].down) {
More information about the Bf-blender-cvs
mailing list