[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