[geos-commits] [SCM] GEOS branch main updated. 1ae8b36bf61933ed20456da4e5356d239251dc8a

git at osgeo.org git at osgeo.org
Wed Jun 4 15:52:41 PDT 2025


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, main has been updated
       via  1ae8b36bf61933ed20456da4e5356d239251dc8a (commit)
      from  b577e3056f5a3ecec7bb1ded2181591a87b06149 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1ae8b36bf61933ed20456da4e5356d239251dc8a
Author: Daniel Baston <dbaston at gmail.com>
Date:   Wed Jun 4 18:52:14 2025 -0400

    CoverageRingEdges: optimize findBoundaryNodes (#1270)

diff --git a/src/coverage/CoverageRingEdges.cpp b/src/coverage/CoverageRingEdges.cpp
index e6ec619b7..9d5eba07f 100644
--- a/src/coverage/CoverageRingEdges.cpp
+++ b/src/coverage/CoverageRingEdges.cpp
@@ -278,25 +278,10 @@ CoverageRingEdges::findMultiRingNodes(const std::vector<const Geometry*>& covera
 Coordinate::UnorderedSet
 CoverageRingEdges::findBoundaryNodes(LineSegment::UnorderedSet& boundarySegments)
 {
-    std::map<Coordinate, std::size_t> counter;
+    std::unordered_map<Coordinate, std::size_t, Coordinate::HashCode> counter;
     for (const LineSegment& seg : boundarySegments) {
-        // counter.put(line.p0, counter.getOrDefault(line.p0, 0) + 1);
-        // counter.put(line.p1, counter.getOrDefault(line.p1, 0) + 1);
-        auto search0 = counter.find(seg.p0);
-        if (search0 != counter.end()) {
-            counter[seg.p0] = search0->second + 1;
-        }
-        else {
-            counter[seg.p0] = 0;
-        }
-
-        auto search1 = counter.find(seg.p1);
-        if (search1 != counter.end()) {
-            counter[seg.p1] = search1->second + 1;
-        }
-        else {
-            counter[seg.p1] = 0;
-        }
+        counter[seg.p0] += 1;
+        counter[seg.p1] += 1;
     }
 
     Coordinate::UnorderedSet nodes;
@@ -307,10 +292,6 @@ CoverageRingEdges::findBoundaryNodes(LineSegment::UnorderedSet& boundarySegments
             nodes.insert(v);
     }
     return nodes;
-
-    // return counter.entrySet().stream()
-    //     .filter(e->e.getValue()>2)
-    //     .map(Map.Entry::getKey).collect(Collectors.toSet());
 }
 
 

-----------------------------------------------------------------------

Summary of changes:
 src/coverage/CoverageRingEdges.cpp | 25 +++----------------------
 1 file changed, 3 insertions(+), 22 deletions(-)


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list