diff options
Diffstat (limited to 'src/expr/node_manager.cpp')
-rw-r--r-- | src/expr/node_manager.cpp | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp index 0c3f1b4cb..39be675ec 100644 --- a/src/expr/node_manager.cpp +++ b/src/expr/node_manager.cpp @@ -187,15 +187,7 @@ NodeManager::~NodeManager() { d_rt_cache.d_children.clear(); d_rt_cache.d_data = dummy; - // TODO: switch to DType - for (std::vector<Datatype*>::iterator - datatype_iter = d_ownedDatatypes.begin(), - datatype_end = d_ownedDatatypes.end(); - datatype_iter != datatype_end; ++datatype_iter) { - Datatype* datatype = *datatype_iter; - delete datatype; - } - d_ownedDatatypes.clear(); + d_ownedDTypes.clear(); Assert(!d_attrManager->inGarbageCollection()); @@ -248,23 +240,17 @@ NodeManager::~NodeManager() { d_options = NULL; } -unsigned NodeManager::registerDatatype(Datatype* dt) { - unsigned sz = d_ownedDatatypes.size(); - d_ownedDatatypes.push_back( dt ); +size_t NodeManager::registerDatatype(std::shared_ptr<DType> dt) +{ + size_t sz = d_ownedDTypes.size(); + d_ownedDTypes.push_back(dt); return sz; } -const Datatype & NodeManager::getDatatypeForIndex( unsigned index ) const{ - // when the Node-level API is in place, this function will be deleted. - Assert(index < d_ownedDatatypes.size()); - return *d_ownedDatatypes[index]; -} - const DType& NodeManager::getDTypeForIndex(unsigned index) const { - const Datatype& d = getDatatypeForIndex(index); - // return its internal representation - return *d.d_internal; + Assert(index < d_ownedDTypes.size()); + return *d_ownedDTypes[index]; } void NodeManager::reclaimZombies() { |