Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2020-05-19 10:42:05 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2020-05-27 13:07:15 +0300
commit57aae2a35511e9c4e137016c33f3c44553375aeb (patch)
tree64cb56fd43296441f87702f8db37dbac46b11c77 /intern/opensubdiv/internal/topology
parentc81a5f58f8bee9e592963d5e65a62d2a9eba7825 (diff)
OpenSubdiv: Refactor, use C++ allocation for internal classes
Only use OBJECT_GUARDED_{NEW. DELETE} for structures which are part of public C-API (and hence can not have new/delete operators overloaded). Could try being brave and override new/delete from under C++ ifdef.
Diffstat (limited to 'intern/opensubdiv/internal/topology')
-rw-r--r--intern/opensubdiv/internal/topology/topology_refiner_capi.cc4
-rw-r--r--intern/opensubdiv/internal/topology/topology_refiner_impl.h3
2 files changed, 5 insertions, 2 deletions
diff --git a/intern/opensubdiv/internal/topology/topology_refiner_capi.cc b/intern/opensubdiv/internal/topology/topology_refiner_capi.cc
index 9bfba259671..5014d24a52b 100644
--- a/intern/opensubdiv/internal/topology/topology_refiner_capi.cc
+++ b/intern/opensubdiv/internal/topology/topology_refiner_capi.cc
@@ -230,7 +230,7 @@ void assignFunctionPointers(OpenSubdiv_TopologyRefiner *topology_refiner)
OpenSubdiv_TopologyRefiner *allocateTopologyRefiner()
{
OpenSubdiv_TopologyRefiner *topology_refiner = OBJECT_GUARDED_NEW(OpenSubdiv_TopologyRefiner);
- topology_refiner->impl = OBJECT_GUARDED_NEW(OpenSubdiv_TopologyRefinerImpl);
+ topology_refiner->impl = new OpenSubdiv_TopologyRefinerImpl();
assignFunctionPointers(topology_refiner);
return topology_refiner;
}
@@ -256,7 +256,7 @@ OpenSubdiv_TopologyRefiner *openSubdiv_createTopologyRefinerFromConverter(
void openSubdiv_deleteTopologyRefiner(OpenSubdiv_TopologyRefiner *topology_refiner)
{
- OBJECT_GUARDED_DELETE(topology_refiner->impl, OpenSubdiv_TopologyRefinerImpl);
+ delete topology_refiner->impl;
OBJECT_GUARDED_DELETE(topology_refiner, OpenSubdiv_TopologyRefiner);
}
diff --git a/intern/opensubdiv/internal/topology/topology_refiner_impl.h b/intern/opensubdiv/internal/topology/topology_refiner_impl.h
index 507f3d0f869..5c7b81c2540 100644
--- a/intern/opensubdiv/internal/topology/topology_refiner_impl.h
+++ b/intern/opensubdiv/internal/topology/topology_refiner_impl.h
@@ -25,6 +25,7 @@
#include <opensubdiv/far/topologyRefiner.h>
+#include "internal/base/memory.h"
#include "opensubdiv_topology_refiner_capi.h"
namespace blender {
@@ -45,6 +46,8 @@ class TopologyRefinerImpl {
// Ideally, we would also support refining topology without re-importing it
// from external world, but that is for later.
OpenSubdiv_TopologyRefinerSettings settings;
+
+ MEM_CXX_CLASS_ALLOC_FUNCS("TopologyRefinerImpl");
};
} // namespace opensubdiv