diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2020-05-19 10:42:05 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2020-05-27 13:07:15 +0300 |
commit | 57aae2a35511e9c4e137016c33f3c44553375aeb (patch) | |
tree | 64cb56fd43296441f87702f8db37dbac46b11c77 /intern/opensubdiv/internal/topology | |
parent | c81a5f58f8bee9e592963d5e65a62d2a9eba7825 (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.cc | 4 | ||||
-rw-r--r-- | intern/opensubdiv/internal/topology/topology_refiner_impl.h | 3 |
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 |