diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-05-05 23:47:21 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-05-05 23:47:21 +0300 |
commit | 5e72ea439728de488a581b8006060b85b7c2ab20 (patch) | |
tree | d8077f55f00b2cc1650c3c600c41e024a6cb5526 /source/blender/editors/transform | |
parent | d12378da11f65187fab5e98d4c5ade568c781412 (diff) |
Don't overwrite existing snap context
Re-activating transform would overwrite previous context, leaking memory.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform_snap.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 24b4b16e13f..d923bcb6629 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))); + } } } } |