Skip to content

v0.2.49..v0.2.50 changeset MergerFactory.cpp

Garret Voltz edited this page Nov 6, 2019 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/conflate/merging/MergerFactory.cpp b/hoot-core/src/main/cpp/hoot/core/conflate/merging/MergerFactory.cpp
index 9ef3f2a..6bfd046 100644
--- a/hoot-core/src/main/cpp/hoot/core/conflate/merging/MergerFactory.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/conflate/merging/MergerFactory.cpp
@@ -49,27 +49,22 @@ MergerFactory::MergerFactory()
 
 MergerFactory::~MergerFactory()
 {
-  clear();
+  reset();
 }
 
-void MergerFactory::clear()
+void MergerFactory::reset()
 {
-  // delete all creators.
-  for (size_t i = 0; i < _creators.size(); ++i)
-  {
-    delete _creators[i];
-  }
   _creators.clear();
 }
 
 void MergerFactory::createMergers(const OsmMapPtr& map, const MatchSet& matches,
-  vector<Merger*>& result) const
+  vector<MergerPtr>& result) const
 {
   for (size_t i = 0; i < _creators.size(); i++)
   {
     PROGRESS_DEBUG("Creating merger " << i + 1 << " / " << _creators.size() << "...");
 
-    OsmMapConsumer* omc = dynamic_cast<OsmMapConsumer*>(_creators[i]);
+    OsmMapConsumer* omc = dynamic_cast<OsmMapConsumer*>(_creators[i].get());
     if (omc)
     {
       omc->setOsmMap(map.get());
@@ -91,7 +86,6 @@ void MergerFactory::createMergers(const OsmMapPtr& map, const MatchSet& matches,
   if (logWarnCount < Log::getWarnMessageLimit())
   {
     LOG_WARN("Unable to create merger for the provided set of matches: " << matches);
-    LOG_DEBUG("Creators: " << _creators);
   }
   else if (logWarnCount == Log::getWarnMessageLimit())
   {
@@ -137,8 +131,8 @@ MergerFactory& MergerFactory::getInstance()
   return *_theInstance;
 }
 
-bool MergerFactory::isConflicting(const ConstOsmMapPtr& map, const Match* m1,
-                                  const Match* m2) const
+bool MergerFactory::isConflicting(const ConstOsmMapPtr& map, const ConstMatchPtr& m1,
+                                  const ConstMatchPtr& m2) const
 {
   LOG_VART(_creators.size());
   // if any creator considers a match conflicting then it is a conflict
@@ -165,7 +159,7 @@ void MergerFactory::registerDefaultCreators()
     if (className.length() > 0)
     {
       args.removeFirst();
-      MergerCreator* mc = Factory::getInstance().constructObject<MergerCreator>(className);
+      MergerCreatorPtr mc(Factory::getInstance().constructObject<MergerCreator>(className));
       registerCreator(mc);
 
       if (args.size() > 0)
Clone this wiki locally