v0.2.49..v0.2.50 changeset MultiaryPoiMergeCache.cpp
Garret Voltz edited this page Nov 6, 2019
·
1 revision
diff --git a/hoot-rnd/src/main/cpp/hoot/rnd/conflate/multiary/MultiaryPoiMergeCache.cpp b/hoot-rnd/src/main/cpp/hoot/rnd/conflate/multiary/MultiaryPoiMergeCache.cpp
index c13f307..e93fd30 100644
--- a/hoot-rnd/src/main/cpp/hoot/rnd/conflate/multiary/MultiaryPoiMergeCache.cpp
+++ b/hoot-rnd/src/main/cpp/hoot/rnd/conflate/multiary/MultiaryPoiMergeCache.cpp
@@ -55,42 +55,6 @@ public:
}
};
-/**
- * Delete the MatchSet structure in a safe way.
- */
-struct ScopedMatchDeleter
-{
- ScopedMatchDeleter(MatchSet& ms) : _ms(ms) {}
-
- ~ScopedMatchDeleter()
- {
- foreach (const Match* m, _ms)
- {
- delete m;
- }
- }
-
- MatchSet _ms;
-};
-
-/**
- * Delete the Merger vector in a safe way.
- */
-struct ScopedMergerDeleter
-{
- ScopedMergerDeleter(std::vector<Merger*>& ms) : _ms(ms) {}
-
- ~ScopedMergerDeleter()
- {
- foreach (Merger* m, _ms)
- {
- delete m;
- }
- }
-
- std::vector<Merger*>& _ms;
-};
-
MultiaryPoiMergeCache::MultiaryPoiMergeCache(const ConstOsmMapPtr& map,
const std::shared_ptr<MatchCreator>& matchCreator,
const std::shared_ptr<MergerCreator>& mergerCreator) :
@@ -120,14 +84,12 @@ MultiaryClusterPtr MultiaryPoiMergeCache::merge(const MultiaryClusterPtr& c1, co
// create a match set that we can populate with the provided match creator.
MatchSet ms;
- // clean up the matches in a safe way.
- ScopedMatchDeleter deleteMatches(ms);
// go through the 2nd through the last element
for (int i = 1; i < result->size(); ++i)
{
// create a match between the ith element and the first element.
- Match* m = _matchCreator->createMatch(_map, result->at(0)->getElementId(),
+ MatchPtr m = _matchCreator->createMatch(_map, result->at(0)->getElementId(),
result->at(i)->getElementId());
// if the match isn't valid then this isn't a valid cluster the merge.
@@ -140,9 +102,8 @@ MultiaryClusterPtr MultiaryPoiMergeCache::merge(const MultiaryClusterPtr& c1, co
ms.insert(m);
}
- // create a merge vector and a clean way to clean it up.
- std::vector<Merger*> mergers;
- ScopedMergerDeleter deleteMergers(mergers);
+ // create a merge vector
+ std::vector<MergerPtr> mergers;
// create a merger with the provided merge creator.
_mergerCreator->createMergers(ms, mergers);