[Bf-blender-cvs] [5e72ea4] master: Don't overwrite existing snap context

Campbell Barton noreply at git.blender.org
Thu May 5 22:45:50 CEST 2016


Commit: 5e72ea439728de488a581b8006060b85b7c2ab20
Author: Campbell Barton
Date:   Fri May 6 06:47:21 2016 +1000
Branches: master
https://developer.blender.org/rB5e72ea439728de488a581b8006060b85b7c2ab20

Don't overwrite existing snap context

Re-activating transform would overwrite previous context, leaking memory.

===================================================================

M	source/blender/editors/transform/transform_snap.c

===================================================================

diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 24b4b16..d923bcb 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -569,16 +569,18 @@ static void initSnappingMode(TransInfo *t)
 
 	if (t->flag & (T_OBJECT | T_EDIT)) {
 		if (t->spacetype == SPACE_VIEW3D) {
-			t->tsnap.object_context = ED_transform_snap_object_context_create_view3d(
-			        G.main, t->scene, SNAP_OBJECT_USE_CACHE,
-			        t->ar, t->view);
-
-			ED_transform_snap_object_context_set_editmesh_callbacks(
-			        t->tsnap.object_context,
-			        (bool (*)(BMVert *, void *))BM_elem_cb_check_hflag_disabled,
-			        (bool (*)(BMEdge *, void *))BM_elem_cb_check_hflag_disabled,
-			        (bool (*)(BMFace *, void *))BM_elem_cb_check_hflag_disabled,
-			        SET_UINT_IN_POINTER((BM_ELEM_SELECT | BM_ELEM_HIDDEN)));
+			if (t->tsnap.object_context == NULL) {
+				t->tsnap.object_context = ED_transform_snap_object_context_create_view3d(
+				        G.main, t->scene, SNAP_OBJECT_USE_CACHE,
+				        t->ar, t->view);
+
+				ED_transform_snap_object_context_set_editmesh_callbacks(
+				        t->tsnap.object_context,
+				        (bool (*)(BMVert *, void *))BM_elem_cb_check_hflag_disabled,
+				        (bool (*)(BMEdge *, void *))BM_elem_cb_check_hflag_disabled,
+				        (bool (*)(BMFace *, void *))BM_elem_cb_check_hflag_disabled,
+				        SET_UINT_IN_POINTER((BM_ELEM_SELECT | BM_ELEM_HIDDEN)));
+			}
 		}
 	}
 }




More information about the Bf-blender-cvs mailing list