[Bf-blender-cvs] [5956bed] object_nodes: Revert "Fix for unfreed memory of the default empty mesh."

Lukas Tönne noreply at git.blender.org
Tue Nov 24 09:44:49 CET 2015


Commit: 5956bed117c8fb3251f0309413f2d45d8ba3f7e8
Author: Lukas Tönne
Date:   Sat Nov 21 17:20:23 2015 +0100
Branches: object_nodes
https://developer.blender.org/rB5956bed117c8fb3251f0309413f2d45d8ba3f7e8

Revert "Fix for unfreed memory of the default empty mesh."

This reverts commit 0ab9e4848d68ade3903c25cfea12ea982aefc2ae.

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

M	source/blender/blenvm/intern/bvm_api.cc
M	source/blender/blenvm/util/bvm_util_typedesc.h

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

diff --git a/source/blender/blenvm/intern/bvm_api.cc b/source/blender/blenvm/intern/bvm_api.cc
index a9d1878..d54d3e9 100644
--- a/source/blender/blenvm/intern/bvm_api.cc
+++ b/source/blender/blenvm/intern/bvm_api.cc
@@ -55,30 +55,15 @@ extern "C" {
 
 #include "bvm_util_map.h"
 #include "bvm_util_thread.h"
-#include "bvm_util_typedesc.h"
 
 void BVM_init(void)
 {
-	/* note: static variable for DerivedMesh does not work well,
-	 * this needs to be created/freed explicitly
-	 */
-	DerivedMesh *dm = CDDM_new(0, 0, 0, 0, 0);
-	dm->needsFree = 0;
-	bvm::__empty_mesh__.set(dm);
-	
 	bvm::register_opcode_node_types();
 }
 
 void BVM_free(void)
 {
 	BVM_texture_cache_clear();
-	
-	/* note: static variable for DerivedMesh does not work well,
-	 * this needs to be created/freed explicitly
-	 */
-	DerivedMesh *dm = bvm::__empty_mesh__.get();
-	dm->needsFree = 1;
-	dm->release(dm);
 }
 
 /* ------------------------------------------------------------------------- */
diff --git a/source/blender/blenvm/util/bvm_util_typedesc.h b/source/blender/blenvm/util/bvm_util_typedesc.h
index 2bb1b79..77f34ff 100644
--- a/source/blender/blenvm/util/bvm_util_typedesc.h
+++ b/source/blender/blenvm/util/bvm_util_typedesc.h
@@ -298,7 +298,18 @@ struct DerivedMeshDestructor {
 
 typedef node_data_ptr<DerivedMesh, DerivedMeshDestructor> mesh_ptr;
 
-static mesh_ptr __empty_mesh__ = mesh_ptr(0);
+namespace detail {
+
+static mesh_ptr create_empty_mesh()
+{
+	DerivedMesh *dm = CDDM_new(0, 0, 0, 0, 0);
+	dm->needsFree = 0;
+	return mesh_ptr(dm);
+}
+
+}
+
+static const mesh_ptr __empty_mesh__ = detail::create_empty_mesh();
 
 
 template <BVMType type>




More information about the Bf-blender-cvs mailing list