From 7fa7e4ba1faf7a122f99a683c04935e01725061c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 11 Mar 2012 05:58:22 +0000 Subject: bmesh python api additions: - BMesh.is_wrapped - BMesh.copy() - BMesh.clear() - BMesh.free() - BMesh.from_object(obj, apply_modifiers=True) - BMEdge.calc_length() - BMLoop.calc_normal() - BMLoop.calc_tangent() --- source/blender/bmesh/intern/bmesh_mesh.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'source/blender/bmesh/intern/bmesh_mesh.c') diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c index 63719e778f7..392887e3aec 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.c +++ b/source/blender/bmesh/intern/bmesh_mesh.c @@ -154,13 +154,6 @@ void BM_mesh_data_free(BMesh *bm) BLI_freelistN(&bm->selected); - if (bm->py_handle) { - extern void bpy_bm_generic_invalidate(void *self); - - bpy_bm_generic_invalidate(bm->py_handle); - bm->py_handle = NULL; - } - BMO_error_clear(bm); } @@ -195,6 +188,16 @@ void BM_mesh_clear(BMesh *bm) void BM_mesh_free(BMesh *bm) { BM_mesh_data_free(bm); + + if (bm->py_handle) { + /* keep this out of 'BM_mesh_data_free' because we wan't python + * to be able to clear the mesh and maintain access. */ + extern void bpy_bm_generic_invalidate(void *self); + + bpy_bm_generic_invalidate(bm->py_handle); + bm->py_handle = NULL; + } + MEM_freeN(bm); } -- cgit v1.2.3