Skip to content

v0.2.49..v0.2.50 changeset HighwayMergerCreator.cpp

Garret Voltz edited this page Nov 6, 2019 · 1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwayMergerCreator.cpp b/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwayMergerCreator.cpp
index 66983ae..febe951 100644
--- a/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwayMergerCreator.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/conflate/highway/HighwayMergerCreator.cpp
@@ -30,9 +30,9 @@
 #include <hoot/core/conflate/highway/HighwayMatch.h>
 #include <hoot/core/conflate/highway/HighwaySnapMerger.h>
 #include <hoot/core/conflate/highway/HighwayTagOnlyMerger.h>
+#include <hoot/core/util/ConfigOptions.h>
 #include <hoot/core/util/Factory.h>
 #include <hoot/core/util/Log.h>
-#include <hoot/core/util/ConfigOptions.h>
 
 using namespace std;
 
@@ -46,7 +46,7 @@ HighwayMergerCreator::HighwayMergerCreator()
   setConfiguration(conf());
 }
 
-bool HighwayMergerCreator::createMergers(const MatchSet& matches, vector<Merger*>& mergers) const
+bool HighwayMergerCreator::createMergers(const MatchSet& matches, vector<MergerPtr>& mergers) const
 {
   LOG_TRACE("Creating mergers with " << className() << "...");
 
@@ -59,9 +59,9 @@ bool HighwayMergerCreator::createMergers(const MatchSet& matches, vector<Merger*
   // go through all the matches
   for (MatchSet::const_iterator it = matches.begin(); it != matches.end(); ++it)
   {
-    const Match* m = *it;
+    ConstMatchPtr m = *it;
     LOG_VART(m->toString());
-    const HighwayMatch* hm = dynamic_cast<const HighwayMatch*>(m);
+    const HighwayMatch* hm = dynamic_cast<const HighwayMatch*>(m.get());
     // check to make sure all the input matches are building matches.
     if (hm == 0)
     {
@@ -86,11 +86,11 @@ bool HighwayMergerCreator::createMergers(const MatchSet& matches, vector<Merger*
   {
     if (!ConfigOptions().getHighwayMergeTagsOnly())
     {
-      mergers.push_back(new HighwaySnapMerger(eids, sublineMatcher));
+      mergers.push_back(MergerPtr(new HighwaySnapMerger(eids, sublineMatcher)));
     }
     else
     {
-      mergers.push_back(new HighwayTagOnlyMerger(eids, sublineMatcher));
+      mergers.push_back(MergerPtr(new HighwayTagOnlyMerger(eids, sublineMatcher)));
     }
     result = true;
   }
@@ -107,15 +107,15 @@ vector<CreatorDescription> HighwayMergerCreator::getAllCreators() const
   return result;
 }
 
-bool HighwayMergerCreator::isConflicting(const ConstOsmMapPtr& map, const Match* m1,
-  const Match* m2) const
+bool HighwayMergerCreator::isConflicting(const ConstOsmMapPtr& map, ConstMatchPtr m1,
+  ConstMatchPtr m2) const
 {
-  const HighwayMatch* hm1 = dynamic_cast<const HighwayMatch*>(m1);
-  const HighwayMatch* hm2 = dynamic_cast<const HighwayMatch*>(m2);
+  const HighwayMatch* hm1 = dynamic_cast<const HighwayMatch*>(m1.get());
+  const HighwayMatch* hm2 = dynamic_cast<const HighwayMatch*>(m2.get());
 
   if (hm1 && hm2)
   {
-    const bool conflicting = hm1->isConflicting(*hm2, map);
+    const bool conflicting = m1->isConflicting(m2, map);
     if (conflicting)
     {
       LOG_TRACE("Conflicting matches: " << m1 << ", " << m2);
Clone this wiki locally