Backport fix for performance regression (#1972892)

This commit is contained in:
Sandro Mani 2021-06-17 11:45:33 +02:00
parent c12aab2426
commit a9ccaf0d30
3 changed files with 35 additions and 9 deletions

View File

@ -0,0 +1,21 @@
diff -rupN --no-dereference geos-3.9.1/src/noding/SegmentNodeList.cpp geos-3.9.1-new/src/noding/SegmentNodeList.cpp
--- geos-3.9.1/src/noding/SegmentNodeList.cpp 2021-02-10 19:10:27.000000000 +0100
+++ geos-3.9.1-new/src/noding/SegmentNodeList.cpp 2021-06-17 11:44:40.862229759 +0200
@@ -301,6 +301,8 @@ SegmentNodeList::getSplitCoordinates()
addEdgeCoordinates(eiPrev, ei, *coordList);
eiPrev = ei;
}
+ // Remove duplicate Coordinates from coordList
+ coordList->erase(std::unique(coordList->begin(), coordList->end()), coordList->end());
return coordList;
}
@@ -312,8 +314,6 @@ SegmentNodeList::addEdgeCoordinates(cons
createSplitEdgePts(ei0, ei1, pts);
// Append pts to coordList
coordList.insert(coordList.end(), pts.begin(), pts.end());
- // Remove duplicate Coordinates from coordList
- coordList.erase(std::unique(coordList.begin(), coordList.end()), coordList.end());
}

View File

@ -1,6 +1,6 @@
Name: geos
Version: 3.9.1
Release: 3%{?dist}
Release: 4%{?dist}
Summary: GEOS is a C++ port of the Java Topology Suite
License: LGPLv2
@ -11,6 +11,8 @@ Source1: http://git.osgeo.org/gitea/geos/geos/raw/tag/%{version}/doc/check
# Honour libsuffix
Patch1: geos_libsuffix.patch
# Backport fix for performance regression
Patch2: https://github.com/libgeos/geos/commit/e615f6ca286cb15bad3f919e066b4b3bbd8cad58.patch
BuildRequires: cmake
BuildRequires: doxygen
@ -86,6 +88,9 @@ make docs -C %{__cmake_builddir}
%changelog
* Thu Jun 17 2021 Sandro Mani <manisandro@gmail.com> - 3.9.1-4
- Backport fix for performance regression (#1972892)
* Tue Mar 23 2021 Sandro Mani <manisandro@gmail.com> - 3.9.1-3
- Bump

View File

@ -1,6 +1,6 @@
diff -rupN --no-dereference geos-3.9.1/CMakeLists.txt geos-3.9.1-new/CMakeLists.txt
--- geos-3.9.1/CMakeLists.txt 2021-02-10 13:10:27.000000000 -0500
+++ geos-3.9.1-new/CMakeLists.txt 2021-03-10 11:38:06.200581963 -0500
--- geos-3.9.1/CMakeLists.txt 2021-02-10 19:10:27.000000000 +0100
+++ geos-3.9.1-new/CMakeLists.txt 2021-06-17 11:44:40.776229757 +0200
@@ -308,16 +308,16 @@ configure_file(cmake/geos-config.cmake
install(TARGETS geos geos_cxx_flags
@ -38,8 +38,8 @@ diff -rupN --no-dereference geos-3.9.1/CMakeLists.txt geos-3.9.1-new/CMakeLists.
"${CMAKE_CURRENT_LIST_DIR}/include/geos"
"${CMAKE_CURRENT_BINARY_DIR}/include/geos"
diff -rupN --no-dereference geos-3.9.1/tools/CMakeLists.txt geos-3.9.1-new/tools/CMakeLists.txt
--- geos-3.9.1/tools/CMakeLists.txt 2021-02-10 13:10:27.000000000 -0500
+++ geos-3.9.1-new/tools/CMakeLists.txt 2021-03-10 11:38:06.200581963 -0500
--- geos-3.9.1/tools/CMakeLists.txt 2021-02-10 19:10:27.000000000 +0100
+++ geos-3.9.1-new/tools/CMakeLists.txt 2021-06-17 11:44:40.776229757 +0200
@@ -36,7 +36,7 @@ if(NOT MSVC)
install(FILES
@ -50,8 +50,8 @@ diff -rupN --no-dereference geos-3.9.1/tools/CMakeLists.txt geos-3.9.1-new/tools
endif()
diff -rupN --no-dereference geos-3.9.1/tools/geos-config.cmake geos-3.9.1-new/tools/geos-config.cmake
--- geos-3.9.1/tools/geos-config.cmake 2021-02-03 18:19:53.000000000 -0500
+++ geos-3.9.1-new/tools/geos-config.cmake 2021-03-10 11:38:06.201581969 -0500
--- geos-3.9.1/tools/geos-config.cmake 2021-02-04 00:19:53.000000000 +0100
+++ geos-3.9.1-new/tools/geos-config.cmake 2021-06-17 11:44:40.776229757 +0200
@@ -1,7 +1,7 @@
#!/bin/sh
@ -62,8 +62,8 @@ diff -rupN --no-dereference geos-3.9.1/tools/geos-config.cmake geos-3.9.1-new/to
usage()
{
diff -rupN --no-dereference geos-3.9.1/tools/geos.pc.cmake geos-3.9.1-new/tools/geos.pc.cmake
--- geos-3.9.1/tools/geos.pc.cmake 2021-02-03 18:19:53.000000000 -0500
+++ geos-3.9.1-new/tools/geos.pc.cmake 2021-03-10 11:40:18.802433179 -0500
--- geos-3.9.1/tools/geos.pc.cmake 2021-02-04 00:19:53.000000000 +0100
+++ geos-3.9.1-new/tools/geos.pc.cmake 2021-06-17 11:44:40.776229757 +0200
@@ -8,4 +8,4 @@ Description: Geometry Engine, Open Sourc
Requires:
Version: @GEOS_VERSION@