[geos] 03/07: Imported Upstream version 3.5.1
Bas Couwenberg
sebastic at debian.org
Tue Oct 25 20:33:54 UTC 2016
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch experimental-3.5
in repository geos.
commit bb6e394c3972d3b1894d1b71d04bcdc01d58b0ca
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Tue Oct 25 22:16:42 2016 +0200
Imported Upstream version 3.5.1
---
._CMakeLists.txt | Bin 251 -> 0 bytes
._NEWS | Bin 250 -> 0 bytes
._configure.ac | Bin 247 -> 0 bytes
CMakeLists.txt | 112 +++++++------
ChangeLog | 182 +++++++++++++++++++++
Makefile.in | 3 +-
NEWS | 30 +++-
capi/._geos_c.h.in | Bin 253 -> 0 bytes
capi/Makefile.in | 1 +
capi/geos_c.h | 12 +-
capi/geos_c.h.in | 4 +-
config.guess | 38 ++++-
config.sub | 26 +--
configure | 59 ++++++-
configure.ac | 6 +-
doc/Doxyfile | 2 +-
doc/Makefile.in | 1 +
geos_svn_revision.h | 2 +-
include/Makefile.in | 1 +
include/geos/._version.h.vc | Bin 210 -> 0 bytes
include/geos/Makefile.in | 1 +
include/geos/algorithm/Makefile.in | 1 +
include/geos/algorithm/PointLocator.h | 3 +
include/geos/algorithm/distance/Makefile.in | 1 +
include/geos/algorithm/locate/Makefile.in | 1 +
include/geos/geom/Makefile.in | 1 +
include/geos/geom/prep/Makefile.in | 1 +
include/geos/geom/util/Makefile.in | 1 +
include/geos/geomgraph/GeometryGraph.h | 13 ++
include/geos/geomgraph/Makefile.in | 1 +
include/geos/geomgraph/index/Makefile.in | 1 +
include/geos/geomgraph/index/SegmentIntersector.h | 10 ++
.../geomgraph/index/SimpleMCSweepLineIntersector.h | 3 +-
include/geos/index/Makefile.in | 1 +
include/geos/index/bintree/Makefile.in | 1 +
include/geos/index/chain/Makefile.in | 1 +
include/geos/index/intervalrtree/Makefile.in | 1 +
include/geos/index/quadtree/Makefile.in | 1 +
include/geos/index/strtree/Makefile.in | 1 +
include/geos/index/sweepline/Makefile.in | 1 +
include/geos/io/Makefile.in | 1 +
include/geos/linearref/Makefile.in | 1 +
include/geos/noding/Makefile.in | 1 +
include/geos/noding/snapround/Makefile.in | 1 +
include/geos/operation/Makefile.in | 1 +
include/geos/operation/buffer/Makefile.in | 1 +
include/geos/operation/distance/Makefile.in | 1 +
include/geos/operation/intersection/Makefile.in | 1 +
include/geos/operation/linemerge/Makefile.in | 1 +
include/geos/operation/overlay/Makefile.in | 1 +
include/geos/operation/overlay/snap/Makefile.in | 1 +
include/geos/operation/polygonize/Makefile.in | 1 +
include/geos/operation/predicate/Makefile.in | 1 +
include/geos/operation/relate/Makefile.in | 1 +
include/geos/operation/sharedpaths/Makefile.in | 1 +
include/geos/operation/union/Makefile.in | 1 +
include/geos/operation/valid/Makefile.in | 1 +
include/geos/planargraph/Makefile.in | 1 +
include/geos/planargraph/algorithm/Makefile.in | 1 +
include/geos/platform.h.cmake | 6 +
include/geos/platform.h.in | 2 +-
include/geos/precision/Makefile.in | 1 +
include/geos/simplify/Makefile.in | 1 +
include/geos/triangulate/Makefile.in | 1 +
include/geos/triangulate/quadedge/Makefile.in | 1 +
.../triangulate/quadedge/QuadEdgeSubdivision.h | 2 +-
include/geos/util/Makefile.in | 1 +
include/geos/version.h.vc | 4 +-
install-sh | 23 ++-
ltmain.sh | 37 +++--
macros/._libtool.m4 | Bin 239 -> 0 bytes
macros/._ltoptions.m4 | Bin 239 -> 0 bytes
macros/._ltsugar.m4 | Bin 239 -> 0 bytes
macros/._lt~obsolete.m4 | Bin 239 -> 0 bytes
macros/Makefile.in | 1 +
macros/libtool.m4 | 27 ++-
nmake.opt | 3 +
php/Makefile.in | 1 +
php/test/Makefile.in | 1 +
src/Makefile.in | 1 +
src/algorithm/Makefile.in | 1 +
src/algorithm/PointLocator.cpp | 19 ++-
src/algorithm/distance/Makefile.in | 1 +
src/algorithm/locate/Makefile.in | 1 +
src/geom/Makefile.in | 1 +
src/geom/prep/Makefile.in | 1 +
src/geom/prep/PreparedPoint.cpp | 5 -
src/geom/util/GeometryEditor.cpp | 7 +
src/geom/util/Makefile.in | 1 +
src/geomgraph/GeometryGraph.cpp | 30 ++--
src/geomgraph/Makefile.in | 1 +
src/geomgraph/PlanarGraph.cpp | 22 +--
src/geomgraph/index/Makefile.in | 1 +
src/geomgraph/index/SegmentIntersector.cpp | 16 ++
.../index/SimpleMCSweepLineIntersector.cpp | 4 +
src/index/Makefile.in | 1 +
src/index/bintree/Makefile.in | 1 +
src/index/chain/Makefile.in | 1 +
src/index/intervalrtree/Makefile.in | 1 +
src/index/quadtree/Makefile.in | 1 +
src/index/strtree/Makefile.in | 1 +
src/index/sweepline/Makefile.in | 1 +
src/io/Makefile.in | 1 +
src/io/StringTokenizer.cpp | 1 +
src/linearref/Makefile.in | 1 +
src/noding/Makefile.in | 1 +
src/noding/snapround/Makefile.in | 1 +
src/operation/Makefile.in | 1 +
src/operation/buffer/BufferBuilder.cpp | 22 +--
src/operation/buffer/Makefile.in | 1 +
src/operation/distance/Makefile.in | 1 +
src/operation/intersection/Makefile.in | 1 +
src/operation/linemerge/Makefile.in | 1 +
src/operation/overlay/Makefile.in | 1 +
src/operation/overlay/snap/LineStringSnapper.cpp | 13 +-
src/operation/polygonize/Makefile.in | 1 +
src/operation/predicate/Makefile.in | 1 +
src/operation/relate/Makefile.in | 1 +
src/operation/sharedpaths/Makefile.in | 1 +
src/operation/union/Makefile.in | 1 +
src/operation/valid/ConsistentAreaTester.cpp | 5 +-
src/operation/valid/IsValidOp.cpp | 2 +-
src/operation/valid/Makefile.in | 1 +
src/planargraph/Makefile.in | 1 +
src/precision/Makefile.in | 1 +
src/simplify/Makefile.in | 1 +
src/triangulate/Makefile.in | 1 +
src/triangulate/quadedge/Makefile.in | 1 +
src/triangulate/quadedge/QuadEdgeSubdivision.cpp | 5 +-
src/util/Makefile.in | 1 +
swig/Makefile.in | 1 +
swig/geos.i | 8 +-
swig/python/Makefile.in | 1 +
swig/python/tests/Makefile.in | 1 +
swig/ruby/Makefile.in | 1 +
swig/ruby/test/Makefile.in | 1 +
tests/Makefile.in | 1 +
tests/bigtest/Makefile.in | 1 +
tests/geostest/Makefile.in | 1 +
tests/perf/Makefile.in | 1 +
tests/perf/capi/Makefile.in | 1 +
tests/perf/operation/Makefile.in | 1 +
tests/perf/operation/buffer/Makefile.in | 1 +
tests/perf/operation/predicate/Makefile.in | 1 +
tests/thread/Makefile.in | 1 +
tests/unit/Makefile.in | 1 +
tests/unit/algorithm/PointLocatorTest.cpp | 9 +-
.../overlay/snap/LineStringSnapperTest.cpp | 47 +++++-
tests/unit/triangulate/DelaunayTest.cpp | 6 +-
tests/xmltester/CMakeLists.txt | 8 +-
tests/xmltester/Makefile.in | 1 +
tools/Makefile.in | 1 +
152 files changed, 750 insertions(+), 189 deletions(-)
diff --git a/._CMakeLists.txt b/._CMakeLists.txt
deleted file mode 100644
index 579e6c1..0000000
Binary files a/._CMakeLists.txt and /dev/null differ
diff --git a/._NEWS b/._NEWS
deleted file mode 100644
index bb4df01..0000000
Binary files a/._NEWS and /dev/null differ
diff --git a/._configure.ac b/._configure.ac
deleted file mode 100644
index fa447a3..0000000
Binary files a/._configure.ac and /dev/null differ
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 786f0df..0bbc15f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@
# See the COPYING file for more information.
#
#################################################################################
-project(geos)
+project(GEOS)
cmake_minimum_required(VERSION 2.6)
if(NOT CMAKE_VERSION)
@@ -19,7 +19,7 @@ if(NOT CMAKE_VERSION)
endif()
# Location of custom CMake modules with macros used by GEOS
-set(CMAKE_MODULE_PATH "${geos_SOURCE_DIR}/cmake/modules")
+set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
#################################################################################
# Setup GEOS version
@@ -29,7 +29,7 @@ set(CMAKE_MODULE_PATH "${geos_SOURCE_DIR}/cmake/modules")
# GEOS C++ library SONAME will use these encoding ABI break at every release
set(VERSION_MAJOR 3)
set(VERSION_MINOR 5)
-set(VERSION_PATCH 0)
+set(VERSION_PATCH 1)
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
# JTS_PORT is the version of JTS this release is bound to
@@ -38,7 +38,7 @@ message(STATUS "Setting GEOS version ${VERSION} as port of JTS ${JTS_PORT}")
# GEOS C API version
set(CAPI_INTERFACE_CURRENT 10)
-set(CAPI_INTERFACE_REVISION 0)
+set(CAPI_INTERFACE_REVISION 1)
set(CAPI_INTERFACE_AGE 9)
math(EXPR CAPI_VERSION_MAJOR "${CAPI_INTERFACE_CURRENT} - ${CAPI_INTERFACE_AGE}")
@@ -63,7 +63,7 @@ option(GEOS_ENABLE_INLINE
if(NOT MSVC)
option(GEOS_ENABLE_ASSERT
- "Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF)
+ "Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF)
endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
@@ -117,12 +117,12 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_ISOC99_SOURCE=1")
elseif(MSVC)
-
+
# Set pedantic mode by default
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
string(REGEX REPLACE "/W[0-9]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- if(MSVC80 OR MSVC90 OR MSVC10 OR MSVC11 OR MSVC12 OR MSVC13)
+ if(NOT (MSVC_VERSION LESS 1400)) # Visual Studio 2005 or later
# Option is to enable the /MP switch for Visual Studio 2005 or later
option(GEOS_MSVC_ENABLE_MP
@@ -132,7 +132,7 @@ elseif(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
endif()
message(STATUS "Setting Visual Studio 2005+ option /MP to ${GEOS_MSVC_ENABLE_MP}")
-
+
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
add_definitions(-DNOMINMAX)
@@ -225,13 +225,13 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
#################################################################################
# for including GEOS C++ API headers
-include_directories(${geos_SOURCE_DIR}/include)
+include_directories(${PROJECT_SOURCE_DIR}/include)
# for including build-specific GEOS C API headers
-include_directories(${geos_BINARY_DIR}/capi)
+include_directories(${PROJECT_BINARY_DIR}/capi)
# for including build-specific version.h, platform.h and geos_c.h
-include_directories(${geos_BINARY_DIR}/include)
+include_directories(${PROJECT_BINARY_DIR}/include)
#################################################################################
# Setup checks and generate config headers
@@ -239,7 +239,7 @@ include_directories(${geos_BINARY_DIR}/include)
#################################################################################
# MACRO: GET_SVN_REVISION
-#
+#
# DESCRIPTION:
# MACRO FOR GETTING THE SVN revision for this build
#################################################################################
@@ -254,70 +254,74 @@ MACRO (GET_SVN_REVISION)
ENDMACRO(GET_SVN_REVISION)
# Determine SVN/Git revision
-if(EXISTS "${CMAKE_SOURCE_DIR}/.svn")
+set(GEOS_BUILD_PACKAGED TRUE)
+if(EXISTS "${PROJECT_SOURCE_DIR}/.svn")
+ set(GEOS_BUILD_PACKAGED FALSE)
GET_SVN_REVISION()
+elseif(EXISTS "${PROJECT_SOURCE_DIR}/.git")
+ set(GEOS_BUILD_PACKAGED FALSE)
endif()
-if ( NOT ${Project_WC_REVISION} EQUAL 0 )
- set( GEOS_SVN_REVISION ${Project_WC_REVISION} )
- configure_file (
- "${PROJECT_SOURCE_DIR}/tools/geos_svn_revision_cmake.h.in"
- "${PROJECT_SOURCE_DIR}/geos_svn_revision.h" )
- # "${geos_BINARY_DIR}/include/geos_svn_revision.h" )
-else()
- message(STATUS "Generating revision header ${CMAKE_SOURCE_DIR}/geos_svn_revision.h")
- find_program(SH sh)
- if(SH)
- execute_process(COMMAND ${SH} -c
- "cd ${CMAKE_SOURCE_DIR} && ${CMAKE_SOURCE_DIR}/tools/svn_repo_revision.sh")
-
- file(RENAME "${CMAKE_SOURCE_DIR}/geos_svn_revision.h"
- "${CMAKE_BINARY_DIR}/geos_svn_revision.h")
- else()
- message("*** sh-compatible command not found, cannot create geos_svn_revision.h")
- message("*** Check SVN revision and create revision header manually:")
- message("*** echo '#define GEOS_SVN_REVISION XYZ' > ${CMAKE_SOURCE_DIR}/geos_svn_revision.h")
- endif()
+
+if (NOT GEOS_BUILD_PACKAGED)
+ message(STATUS "Generating GEOS revision header in ${PROJECT_BINARY_DIR}/geos_svn_revision.h")
+ if ( NOT ${Project_WC_REVISION} EQUAL 0 )
+ set( GEOS_SVN_REVISION ${Project_WC_REVISION} )
+ configure_file (
+ "${PROJECT_SOURCE_DIR}/tools/geos_svn_revision_cmake.h.in"
+ "${PROJECT_BINARY_DIR}/geos_svn_revision.h" )
+ else()
+ find_program(SH sh)
+ if(SH)
+ execute_process(COMMAND ${SH} -c
+ "cd ${PROJECT_SOURCE_DIR} && ${PROJECT_SOURCE_DIR}/tools/svn_repo_revision.sh")
+
+ file(RENAME "${PROJECT_SOURCE_DIR}/geos_svn_revision.h"
+ "${PROJECT_BINARY_DIR}/geos_svn_revision.h")
+ else()
+ message("*** sh-compatible command not found, cannot create geos_svn_revision.h")
+ message("*** Check SVN revision and create revision header manually:")
+ message("*** echo '#define GEOS_SVN_REVISION XYZ' > ${PROJECT_SOURCE_DIR}/geos_svn_revision.h")
+ endif()
+ endif()
endif()
# End: Determine SVN/Git revision
-if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h)
- message(STATUS "Disabling existing ${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h")
+if(EXISTS ${PROJECT_SOURCE_DIR}/include/geos/platform.h)
+ message(STATUS "Disabling existing ${PROJECT_SOURCE_DIR}/include/geos/platform.h")
if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 6)
- file(REMOVE ${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h)
+ file(REMOVE ${PROJECT_SOURCE_DIR}/include/geos/platform.h)
set(PH_RESULT "removed")
else()
file(RENAME
- ${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h
- ${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h.disabled)
+ ${PROJECT_SOURCE_DIR}/include/geos/platform.h
+ ${PROJECT_SOURCE_DIR}/include/geos/platform.h.disabled)
set(PH_RESULT "renamed")
endif()
- message(STATUS "Disabling existing ${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h - ${PH_RESULT}")
+ message(STATUS "Disabling existing ${PROJECT_SOURCE_DIR}/include/geos/platform.h - ${PH_RESULT}")
endif()
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/geos/platform.h.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/include/geos/platform.h)
+message(STATUS "Generating GEOS ${PROJECT_BINARY_DIR}/include/geos/platform.h")
+configure_file(${PROJECT_SOURCE_DIR}/include/geos/platform.h.cmake
+ ${PROJECT_BINARY_DIR}/include/geos/platform.h)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/geos/version.h.in
- ${CMAKE_CURRENT_BINARY_DIR}/include/geos/version.h @ONLY)
+message(STATUS "Generating GEOS ${PROJECT_BINARY_DIR}/include/geos/version.h")
+configure_file(${PROJECT_SOURCE_DIR}/include/geos/version.h.in
+ ${PROJECT_BINARY_DIR}/include/geos/version.h @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/capi/geos_c.h.in
- ${CMAKE_CURRENT_BINARY_DIR}/capi/geos_c.h @ONLY)
+message(STATUS "Generating GEOS ${PROJECT_BINARY_DIR}/capi/geos_c.h")
+configure_file(${PROJECT_SOURCE_DIR}/capi/geos_c.h.in
+ ${PROJECT_BINARY_DIR}/capi/geos_c.h @ONLY)
#################################################################################
# Configure tests
#################################################################################
if(GEOS_ENABLE_TESTS)
-
- # Include CTest support
- include(CTest)
- enable_testing()
-
+ enable_testing()
# Define "make check" as alias for "make test"
add_custom_target(check COMMAND ctest)
-
endif()
#################################################################################
@@ -335,12 +339,12 @@ add_subdirectory(tools)
# Install/Uninstall
#################################################################################
-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake"
+configure_file("${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
+ "${PROJECT_BINARY_DIR}/cmake/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
- "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake")
+ "${CMAKE_COMMAND}" -P "${PROJECT_BINARY_DIR}/cmake/cmake_uninstall.cmake")
#################################################################################
# DEBUG settings - TODO: make a summary
diff --git a/ChangeLog b/ChangeLog
index bf8607b..247736e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,185 @@
+2016-08-03 19:28 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4246] ., nmake.opt: Merged revision(s) 4244 from trunk:
+ Add NMAKE version from VS2015 Update 3
+
+2016-07-15 16:38 Sandro Santilli <strk at keybit.net>
+
+ * [r4232] .drone.yml: Add a "make check" step to the drone config
+
+2016-07-14 11:06 Sandro Santilli <strk at keybit.net>
+
+ * [r4225] NEWS, configure.ac, include/geos/platform.h.in: Look for
+ isnan in std:: namespace
+
+ Fully qualify isnan call when HAVE_ISNAN is defined
+ Tested with gcc 4.8.4
+
+ Fixes build with GCC-5.3.0 and higher.
+ Closes #784
+
+2016-07-12 17:48 Sandro Santilli <strk at keybit.net>
+
+ * [r4223] README.md: Use https for travis badge
+
+2016-07-12 17:47 Sandro Santilli <strk at keybit.net>
+
+ * [r4222] .drone.yml: Add .drone.yml
+
+2016-06-07 09:27 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4210] CMakeLists.txt, tests/xmltester/CMakeLists.txt: Update
+ CMake configuration based on trunk/CMakeLists.txt
+
+2016-05-12 09:36 Sandro Santilli <strk at keybit.net>
+
+ * [r4206] README.md: Add debbie and winnie build badges
+
+2016-04-22 16:19 Sandro Santilli <strk at keybit.net>
+
+ * [r4192] .gitlab-ci.yml, README.md: Add gitlab-ci config and badge
+
+2016-03-07 10:23 Sandro Santilli <strk at keybit.net>
+
+ * [r4171] .travis.yml: Report build activity in #postgis-activity
+ (not #postgis)
+
+ Also do not use notices
+
+2016-02-24 11:50 Sandro Santilli <strk at keybit.net>
+
+ * [r4150] NEWS, include/geos/algorithm/PointLocator.h,
+ src/algorithm/PointLocator.cpp, src/geom/prep/PreparedPoint.cpp,
+ tests/unit/algorithm/PointLocatorTest.cpp: Fix incorrect return
+ from PreparedPoint::intersects
+
+ Includes unit test
+
+ Patch by Daniel Baston via
+ https://github.com/libgeos/libgeos/pull/60
+
+ See #764 (for 3.5 branch)
+ Reverts r4081
+
+2016-02-05 08:00 Sandro Santilli <strk at keybit.net>
+
+ * [r4143] NEWS, src/io/StringTokenizer.cpp: Include <limits> in
+ StringTokenizer
+
+ Patch by Jeff Mckenna
+ Closes #766
+
+2016-01-20 00:02 Paul Ramsey <pramsey at cleverelephant.ca>
+
+ * [r4140] NEWS, include/geos/geomgraph/GeometryGraph.h,
+ include/geos/geomgraph/index/SegmentIntersector.h,
+ include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h,
+ src/geomgraph/GeometryGraph.cpp,
+ src/geomgraph/index/SegmentIntersector.cpp,
+ src/geomgraph/index/SimpleMCSweepLineIntersector.cpp,
+ src/operation/valid/ConsistentAreaTester.cpp,
+ src/operation/valid/IsValidOp.cpp: #757, fix memory exhaustion
+ case in isvalid
+
+2015-12-31 08:25 Sandro Santilli <strk at keybit.net>
+
+ * [r4139] NEWS: Add missing 3.3.9 section
+
+2015-12-14 17:20 Sandro Santilli <strk at keybit.net>
+
+ * [r4131] NEWS, src/operation/overlay/snap/LineStringSnapper.cpp,
+ tests/unit/operation/overlay/snap/LineStringSnapperTest.cpp: Fix
+ snapping of last segment in a closed linestring
+
+ See #758
+
+2015-12-14 17:20 Sandro Santilli <strk at keybit.net>
+
+ * [r4130]
+ tests/unit/operation/overlay/snap/LineStringSnapperTest.cpp:
+ Enable a commented-out test (works)
+
+2015-11-21 16:01 Sandro Santilli <strk at keybit.net>
+
+ * [r4120] include/geos/triangulate/quadedge/QuadEdgeSubdivision.h,
+ src/triangulate/quadedge/QuadEdgeSubdivision.cpp: use std::vector
+ instead of std::list to avoid size() bottleneck
+
+ Patch by Daniel Baston via
+ https://github.com/libgeos/libgeos/pull/55
+
+2015-11-04 20:41 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4116] NEWS: Add #753 fix
+
+2015-11-04 20:37 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4115] ., CMakeLists.txt, include/geos/platform.h.cmake: Merged
+ revision(s) 4112,4114 from trunk:
+ Add #define NOMINMAX for Visual C++
+ ........
+ CMake should not try to generate geos_svn_revision.h if GEOS is
+ built from packaged sources.
+ Fixes #753
+
+2015-10-13 11:43 Sandro Santilli <strk at keybit.net>
+
+ * [r4110] NEWS, src/geom/util/GeometryEditor.cpp: Fix
+ GeometryEditor to correctly update factory of empty geometries
+
+ Closes #749
+
+2015-10-05 12:55 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4107] NEWS: Revert accidental removal of whitespaces in r4106.
+
+2015-10-05 09:45 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4106] NEWS: Update NEWS item about memory leaks fixes
+
+2015-10-05 09:44 Mateusz Loskot <mateusz at loskot.net>
+
+ * [r4105] ., src/geomgraph/PlanarGraph.cpp,
+ tests/unit/triangulate/DelaunayTest.cpp: Merged revision(s)
+ 4099-4100, 4104 from trunk:
+ Fix memory leaks (two) due to misuse of CoordinateArraySequence
+ ........
+ Make adding edges a bit more exception safe and helps to avoid
+ memory leaks when PlanarGraph::add(de1) throws, leaving de2
+ behind.
+ This also fixes memory leak in case of self-union with NaN
+ coordinates, revealed by GEOSUnaryUnionTest/test<9>.
+ ........
+ Use std::auto_ptr to simplify r4100 fix of a memory leak
+ potential
+ ........
+
+2015-10-04 16:09 Sandro Santilli <strk at keybit.net>
+
+ * [r4102] NEWS: Add NEWS item about memory leaks fixes
+
+2015-10-04 16:08 Sandro Santilli <strk at keybit.net>
+
+ * [r4101] src/operation/buffer/BufferBuilder.cpp: Fix a few
+ potential (one confirmed) leak in single sided buffer
+
+ See #747
+
+2015-08-16 22:29 Paul Ramsey <pramsey at cleverelephant.ca>
+
+ * [r4088] NEWS: Add 3.5.1 entry to NEWS
+
+2015-08-16 22:28 Paul Ramsey <pramsey at cleverelephant.ca>
+
+ * [r4087] CMakeLists.txt, HOWTO_RELEASE, capi/geos_c.h.in,
+ configure.ac, include/geos/version.h.vc: Bump branch versions for
+ 3.5.1
+
+2015-08-14 18:34 Paul Ramsey <pramsey at cleverelephant.ca>
+
+ * [r4084] CMakeLists.txt, ChangeLog, HOWTO_RELEASE, NEWS,
+ configure.ac: Ready to tag'n'bag 3.5.0
+
2015-08-14 18:22 Paul Ramsey <pramsey at cleverelephant.ca>
* [r4083] .: Branch for release
diff --git a/Makefile.in b/Makefile.in
index 8c91567..d7b8128 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -168,7 +168,7 @@ CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \
INSTALL NEWS README TODO compile config.guess config.sub \
- install-sh ltmain.sh missing py-compile
+ install-sh ltmain.sh missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -372,6 +372,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/NEWS b/NEWS
index 893ea5e..2ad72b4 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,16 @@
+Changes in 3.5.1
+2015-10-25
+
+- Bug fixes / improvements
+ - Fix CMake configuration to allow build from released sources package (#753)
+ - Fix memory leaks in single-sided buffers (#747), PlanarGraph and tests
+ - Fix GeometryEditor to correctly update factory of empty geometries (#749)
+ - Fix snapping of last segment of a closed linestring (#758)
+ - Fix memory exhaustion case in isvalid (#757)
+ - Fix Windows build with Visual Studio 2008 (#766)
+ - Fix incorrect return from prepared multipoint intersects (#764)
+ - Fix build against GCC 3.5.0+ (#784)
+
Changes in 3.5.0
2015-08-15
@@ -82,6 +95,22 @@ Changes in 3.4.0
- CMakeLists.txt, tools/geos_svn_revision_cmake.h.in: Add
geos_svn_revision.h generator to CMake config (#643)
- Makefile.vc 'clean' step leaks obj files (#607)
+
+Changes in 3.3.9
+2013-09-04
+
+- Bug fixes / improvements
+ - Fix OffsetCurve op in presence of duplicated vertices (#602)
+ - Fix LineSegmentVisitor copy ctor (#636)
+ - Fix area boundary return from GEOSPointOnSurface (#623)
+ - Speedup GEOSWKBReader_read (#621)
+ - Fix RobustLineIntersector handling of invalid intersection points (#622)
+ - Reduce likelyhood of invalid output from snap operation (#629, #501)
+ - Reduce memory fragmentation of prepared Polygon/Point intersection op
+ - Fix mingw64 compile (#630)
+ - Fix bug in HotPixel constructor (#635)
+ - Fix install location of linearref headers (#624)
+ - Fix multi-geometry constructor to drop SRID from components (#583)
Changes in 3.3.8
2013-02-28
@@ -524,4 +553,3 @@ Changes in 2.0.0
been dropped. You have to use GeometryFactory instead.
- WKTWriter default constructor has been dropped. You need
to initialize it with an explicit GeometryFactory
-
diff --git a/capi/._geos_c.h.in b/capi/._geos_c.h.in
deleted file mode 100644
index 311e3c9..0000000
Binary files a/capi/._geos_c.h.in and /dev/null differ
diff --git a/capi/Makefile.in b/capi/Makefile.in
index 271293e..1349b8f 100644
--- a/capi/Makefile.in
+++ b/capi/Makefile.in
@@ -378,6 +378,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/capi/geos_c.h b/capi/geos_c.h
index 9de6ea4..2b782ee 100644
--- a/capi/geos_c.h
+++ b/capi/geos_c.h
@@ -60,8 +60,8 @@ extern "C" {
#include <geos/version.h>
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
-#define GEOS_CAPI_VERSION_PATCH 0
-#define GEOS_CAPI_VERSION "3.5.0-CAPI-1.9.0"
+#define GEOS_CAPI_VERSION_PATCH 1
+#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
#else
#ifndef GEOS_VERSION_MAJOR
#define GEOS_VERSION_MAJOR 3
@@ -70,10 +70,10 @@ extern "C" {
#define GEOS_VERSION_MINOR 5
#endif
#ifndef GEOS_VERSION_PATCH
-#define GEOS_VERSION_PATCH 0
+#define GEOS_VERSION_PATCH 1
#endif
#ifndef GEOS_VERSION
-#define GEOS_VERSION "3.5.0"
+#define GEOS_VERSION "3.5.1"
#endif
#ifndef GEOS_JTS_PORT
#define GEOS_JTS_PORT "1.13.0"
@@ -81,8 +81,8 @@ extern "C" {
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
-#define GEOS_CAPI_VERSION_PATCH 0
-#define GEOS_CAPI_VERSION "3.5.0-CAPI-1.9.0"
+#define GEOS_CAPI_VERSION_PATCH 1
+#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
#endif
#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
diff --git a/capi/geos_c.h.in b/capi/geos_c.h.in
index d66247f..f0b8298 100644
--- a/capi/geos_c.h.in
+++ b/capi/geos_c.h.in
@@ -60,8 +60,8 @@ extern "C" {
#include <geos/version.h>
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
-#define GEOS_CAPI_VERSION_PATCH 0
-#define GEOS_CAPI_VERSION "3.5.0-CAPI-1.9.0"
+#define GEOS_CAPI_VERSION_PATCH 1
+#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
#else
#ifndef GEOS_VERSION_MAJOR
#define GEOS_VERSION_MAJOR @VERSION_MAJOR@
diff --git a/config.guess b/config.guess
index 6c32c86..1659250 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2014 Free Software Foundation, Inc.
+# Copyright 1992-2015 Free Software Foundation, Inc.
-timestamp='2014-11-04'
+timestamp='2015-08-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -168,20 +168,27 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ /sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || \
+ echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
+ earmv*)
+ arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine=${arch}${endian}-unknown
+ ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
@@ -197,6 +204,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
os=netbsd
;;
esac
+ # Determine ABI tags.
+ case "${UNAME_MACHINE_ARCH}" in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ ;;
+ esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
@@ -207,13 +221,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
+ echo "${machine}-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -235,6 +249,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
+ *:Sortix:*:*)
+ echo ${UNAME_MACHINE}-unknown-sortix
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@@ -933,6 +950,9 @@ EOF
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
+ e2k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
@@ -1021,7 +1041,7 @@ EOF
echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
diff --git a/config.sub b/config.sub
index 7ffe373..1acc966 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2014 Free Software Foundation, Inc.
+# Copyright 1992-2015 Free Software Foundation, Inc.
-timestamp='2014-12-03'
+timestamp='2015-08-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches at gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -117,7 +117,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
@@ -255,12 +255,13 @@ case $basic_machine in
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
+ | ba \
| be32 | be64 \
| bfin \
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
- | epiphany \
- | fido | fr30 | frv \
+ | e2k | epiphany \
+ | fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
@@ -305,7 +306,7 @@ case $basic_machine in
| riscv32 | riscv64 \
| rl78 | rx \
| score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -376,12 +377,13 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | ba-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
- | elxsi-* \
+ | e2k-* | elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
@@ -428,12 +430,13 @@ case $basic_machine in
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
+ | riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
@@ -518,6 +521,9 @@ case $basic_machine in
basic_machine=i386-pc
os=-aros
;;
+ asmjs)
+ basic_machine=asmjs-unknown
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -1373,7 +1379,7 @@ case $os in
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
+ | -aos* | -aros* | -cloudabi* | -sortix* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
diff --git a/configure b/configure
index 66ac43e..de97bb5 100755
--- a/configure
+++ b/configure
@@ -801,6 +801,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -893,6 +894,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
@@ -1145,6 +1147,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1282,7 +1293,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1435,6 +1446,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -2620,12 +2632,12 @@ test -n "$target_alias" &&
JTS_PORT=1.13.0
CAPI_INTERFACE_CURRENT=10
-CAPI_INTERFACE_REVISION=0
+CAPI_INTERFACE_REVISION=1
CAPI_INTERFACE_AGE=9
VERSION_MAJOR=3
VERSION_MINOR=5
-VERSION_PATCH=0
+VERSION_PATCH=1
VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH"
CAPI_VERSION_MAJOR=`expr $CAPI_INTERFACE_CURRENT - $CAPI_INTERFACE_AGE`
@@ -5811,7 +5823,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
-netbsd*)
+netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
@@ -9497,6 +9509,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
openbsd* | bitrig*)
with_gnu_ld=no
;;
+ linux* | k*bsd*-gnu | gnu*)
+ link_all_deplibs=no
+ ;;
esac
ld_shlibs=yes
@@ -9751,7 +9766,7 @@ _LT_EOF
fi
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -10421,6 +10436,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
+ link_all_deplibs=no
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
@@ -10442,7 +10458,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
@@ -11557,6 +11573,18 @@ fi
dynamic_linker='GNU/Linux ld.so'
;;
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
@@ -14869,7 +14897,7 @@ lt_prog_compiler_static_CXX=
;;
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -15244,6 +15272,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
;;
esac
;;
+ linux* | k*bsd*-gnu | gnu*)
+ link_all_deplibs_CXX=no
+ ;;
*)
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
@@ -15937,6 +15968,18 @@ fi
dynamic_linker='GNU/Linux ld.so'
;;
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
@@ -17802,7 +17845,7 @@ else
int
main ()
{
-double x; int y; y = isnan(x);
+double x; int y; y = std::isnan(x);
;
return 0;
}
diff --git a/configure.ac b/configure.ac
index 52710ca..2818c42 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ JTS_PORT=1.13.0
dnl -- Version info for the CAPI
CAPI_INTERFACE_CURRENT=10
-CAPI_INTERFACE_REVISION=0
+CAPI_INTERFACE_REVISION=1
CAPI_INTERFACE_AGE=9
dnl
@@ -24,7 +24,7 @@ dnl -- encoding ABI break at every release
dnl
VERSION_MAJOR=3
VERSION_MINOR=5
-VERSION_PATCH=0
+VERSION_PATCH=1
VERSION="$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH"
dnl CAPI_VERSION_MAJOR=$(($CAPI_INTERFACE_CURRENT-$CAPI_INTERFACE_AGE))
@@ -197,7 +197,7 @@ dnl of isnan().
AC_LANG_PUSH([C++])
AC_CACHE_CHECK([for isnan], ac_cv_isnan,
[AC_TRY_LINK([#include <cmath>],
- [double x; int y; y = isnan(x);],
+ [double x; int y; y = std::isnan(x);],
ac_cv_isnan=yes,
ac_cv_isnan=no
)])
diff --git a/doc/Doxyfile b/doc/Doxyfile
index b482487..f9ba12f 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -23,7 +23,7 @@ PROJECT_NAME = GEOS
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = 3.5.0
+PROJECT_NUMBER = 3.5.1
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 5b8e0f9..cd3387f 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/geos_svn_revision.h b/geos_svn_revision.h
index 18edabe..95c0006 100644
--- a/geos_svn_revision.h
+++ b/geos_svn_revision.h
@@ -1 +1 @@
-#define GEOS_SVN_REVISION 4084
+#define GEOS_SVN_REVISION 4246
diff --git a/include/Makefile.in b/include/Makefile.in
index e7a88f6..550848d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -381,6 +381,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/._version.h.vc b/include/geos/._version.h.vc
deleted file mode 100644
index 2271589..0000000
Binary files a/include/geos/._version.h.vc and /dev/null differ
diff --git a/include/geos/Makefile.in b/include/geos/Makefile.in
index d0344f6..442424d 100644
--- a/include/geos/Makefile.in
+++ b/include/geos/Makefile.in
@@ -381,6 +381,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/algorithm/Makefile.in b/include/geos/algorithm/Makefile.in
index 0b2837c..27f20c7 100644
--- a/include/geos/algorithm/Makefile.in
+++ b/include/geos/algorithm/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/algorithm/PointLocator.h b/include/geos/algorithm/PointLocator.h
index 2322739..43bf428 100644
--- a/include/geos/algorithm/PointLocator.h
+++ b/include/geos/algorithm/PointLocator.h
@@ -31,6 +31,7 @@ namespace geos {
class LinearRing;
class LineString;
class Polygon;
+ class Point;
}
}
@@ -93,6 +94,8 @@ private:
void updateLocationInfo(int loc);
+ int locate(const geom::Coordinate& p, const geom::Point *pt);
+
int locate(const geom::Coordinate& p, const geom::LineString *l);
int locateInPolygonRing(const geom::Coordinate& p, const geom::LinearRing *ring);
diff --git a/include/geos/algorithm/distance/Makefile.in b/include/geos/algorithm/distance/Makefile.in
index 01aca11..a7df700 100644
--- a/include/geos/algorithm/distance/Makefile.in
+++ b/include/geos/algorithm/distance/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/algorithm/locate/Makefile.in b/include/geos/algorithm/locate/Makefile.in
index eb1d2ad..46b7324 100644
--- a/include/geos/algorithm/locate/Makefile.in
+++ b/include/geos/algorithm/locate/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/geom/Makefile.in b/include/geos/geom/Makefile.in
index 628fab5..3dd7dc9 100644
--- a/include/geos/geom/Makefile.in
+++ b/include/geos/geom/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/geom/prep/Makefile.in b/include/geos/geom/prep/Makefile.in
index e1559c6..d17b5e1 100644
--- a/include/geos/geom/prep/Makefile.in
+++ b/include/geos/geom/prep/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/geom/util/Makefile.in b/include/geos/geom/util/Makefile.in
index af49cfd..d4a2e1c 100644
--- a/include/geos/geom/util/Makefile.in
+++ b/include/geos/geom/util/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/geomgraph/GeometryGraph.h b/include/geos/geomgraph/GeometryGraph.h
index 510f5be..9b533b4 100644
--- a/include/geos/geomgraph/GeometryGraph.h
+++ b/include/geos/geomgraph/GeometryGraph.h
@@ -219,12 +219,25 @@ public:
return computeSelfNodes(*li, computeRingSelfNodes, env);
}
+ index::SegmentIntersector* computeSelfNodes(
+ algorithm::LineIntersector *li,
+ bool computeRingSelfNodes,
+ bool isDoneIfProperInt,
+ const geom::Envelope *env=0)
+ {
+ return computeSelfNodes(*li, computeRingSelfNodes, isDoneIfProperInt, env);
+ }
+
// Quick inline calling the function above, the above should probably
// be deprecated.
index::SegmentIntersector* computeSelfNodes(
algorithm::LineIntersector& li,
bool computeRingSelfNodes, const geom::Envelope *env=0);
+ index::SegmentIntersector* computeSelfNodes(
+ algorithm::LineIntersector& li,
+ bool computeRingSelfNodes, bool isDoneIfProperInt, const geom::Envelope *env=0);
+
index::SegmentIntersector* computeEdgeIntersections(GeometryGraph *g,
algorithm::LineIntersector *li, bool includeProper,
const geom::Envelope *env=0);
diff --git a/include/geos/geomgraph/Makefile.in b/include/geos/geomgraph/Makefile.in
index 913a9c0..3a68b38 100644
--- a/include/geos/geomgraph/Makefile.in
+++ b/include/geos/geomgraph/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/geomgraph/index/Makefile.in b/include/geos/geomgraph/index/Makefile.in
index 82159e4..3fd5224 100644
--- a/include/geos/geomgraph/index/Makefile.in
+++ b/include/geos/geomgraph/index/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/geomgraph/index/SegmentIntersector.h b/include/geos/geomgraph/index/SegmentIntersector.h
index e6f6179..d5150e6 100644
--- a/include/geos/geomgraph/index/SegmentIntersector.h
+++ b/include/geos/geomgraph/index/SegmentIntersector.h
@@ -56,6 +56,10 @@ private:
bool hasProperInterior;
+ bool isDone;
+
+ bool isDoneWhenProperInt;
+
// the proper intersection point found
geom::Coordinate properIntersectionPoint;
@@ -99,6 +103,8 @@ public:
hasIntersectionVar(false),
hasProper(false),
hasProperInterior(false),
+ isDone(false),
+ isDoneWhenProperInt(false),
li(newLi),
includeProper(newIncludeProper),
recordIsolated(newRecordIsolated),
@@ -123,6 +129,10 @@ public:
void addIntersections(Edge *e0, int segIndex0, Edge *e1, int segIndex1);
+ void setIsDoneIfProperInt(bool isDoneWhenProperInt);
+
+ bool getIsDone();
+
};
} // namespace geos.geomgraph.index
diff --git a/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h b/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
index 5a4f647..a73bd00 100644
--- a/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
+++ b/include/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
@@ -20,6 +20,7 @@
#include <vector>
#include <geos/geomgraph/index/EdgeSetIntersector.h> // for inheritance
+#include <geos/geomgraph/index/SegmentIntersector.h>
#ifdef _MSC_VER
#pragma warning(push)
@@ -31,7 +32,7 @@ namespace geos {
namespace geomgraph {
class Edge;
namespace index {
- class SegmentIntersector;
+ // class SegmentIntersector;
class SweepLineEvent;
}
}
diff --git a/include/geos/index/Makefile.in b/include/geos/index/Makefile.in
index f131fa8..1b13f39 100644
--- a/include/geos/index/Makefile.in
+++ b/include/geos/index/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/index/bintree/Makefile.in b/include/geos/index/bintree/Makefile.in
index d78fc4f..191792b 100644
--- a/include/geos/index/bintree/Makefile.in
+++ b/include/geos/index/bintree/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/index/chain/Makefile.in b/include/geos/index/chain/Makefile.in
index 54679c6..c8f6e8e 100644
--- a/include/geos/index/chain/Makefile.in
+++ b/include/geos/index/chain/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/index/intervalrtree/Makefile.in b/include/geos/index/intervalrtree/Makefile.in
index f35dd8d..cf32f03 100644
--- a/include/geos/index/intervalrtree/Makefile.in
+++ b/include/geos/index/intervalrtree/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/index/quadtree/Makefile.in b/include/geos/index/quadtree/Makefile.in
index bac2290..6a1ff4c 100644
--- a/include/geos/index/quadtree/Makefile.in
+++ b/include/geos/index/quadtree/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/index/strtree/Makefile.in b/include/geos/index/strtree/Makefile.in
index d39f0fc..49050e0 100644
--- a/include/geos/index/strtree/Makefile.in
+++ b/include/geos/index/strtree/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/index/sweepline/Makefile.in b/include/geos/index/sweepline/Makefile.in
index b6a99d3..3dcad31 100644
--- a/include/geos/index/sweepline/Makefile.in
+++ b/include/geos/index/sweepline/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/io/Makefile.in b/include/geos/io/Makefile.in
index 0f0a993..6fc6a2b 100644
--- a/include/geos/io/Makefile.in
+++ b/include/geos/io/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/linearref/Makefile.in b/include/geos/linearref/Makefile.in
index f6724e4..9edf81c 100644
--- a/include/geos/linearref/Makefile.in
+++ b/include/geos/linearref/Makefile.in
@@ -338,6 +338,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/noding/Makefile.in b/include/geos/noding/Makefile.in
index 6dccd58..f5f09fc 100644
--- a/include/geos/noding/Makefile.in
+++ b/include/geos/noding/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/noding/snapround/Makefile.in b/include/geos/noding/snapround/Makefile.in
index 837d6e4..bb31ca0 100644
--- a/include/geos/noding/snapround/Makefile.in
+++ b/include/geos/noding/snapround/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/Makefile.in b/include/geos/operation/Makefile.in
index 656ee5b..8c999a7 100644
--- a/include/geos/operation/Makefile.in
+++ b/include/geos/operation/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/buffer/Makefile.in b/include/geos/operation/buffer/Makefile.in
index 85775c0..7ccdc4e 100644
--- a/include/geos/operation/buffer/Makefile.in
+++ b/include/geos/operation/buffer/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/distance/Makefile.in b/include/geos/operation/distance/Makefile.in
index 4675f6f..da7a42b 100644
--- a/include/geos/operation/distance/Makefile.in
+++ b/include/geos/operation/distance/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/intersection/Makefile.in b/include/geos/operation/intersection/Makefile.in
index 3d6daa1..a4b02fb 100644
--- a/include/geos/operation/intersection/Makefile.in
+++ b/include/geos/operation/intersection/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/linemerge/Makefile.in b/include/geos/operation/linemerge/Makefile.in
index a54aecd..d928f7b 100644
--- a/include/geos/operation/linemerge/Makefile.in
+++ b/include/geos/operation/linemerge/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/overlay/Makefile.in b/include/geos/operation/overlay/Makefile.in
index 3835797..2bde257 100644
--- a/include/geos/operation/overlay/Makefile.in
+++ b/include/geos/operation/overlay/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/overlay/snap/Makefile.in b/include/geos/operation/overlay/snap/Makefile.in
index 5cf3354..e618fcc 100644
--- a/include/geos/operation/overlay/snap/Makefile.in
+++ b/include/geos/operation/overlay/snap/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/polygonize/Makefile.in b/include/geos/operation/polygonize/Makefile.in
index 74b17ea..2999c7d 100644
--- a/include/geos/operation/polygonize/Makefile.in
+++ b/include/geos/operation/polygonize/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/predicate/Makefile.in b/include/geos/operation/predicate/Makefile.in
index b8764f8..b3ed4a8 100644
--- a/include/geos/operation/predicate/Makefile.in
+++ b/include/geos/operation/predicate/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/relate/Makefile.in b/include/geos/operation/relate/Makefile.in
index 5dd0a8b..8180d03 100644
--- a/include/geos/operation/relate/Makefile.in
+++ b/include/geos/operation/relate/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/sharedpaths/Makefile.in b/include/geos/operation/sharedpaths/Makefile.in
index c511eb6..cb77c66 100644
--- a/include/geos/operation/sharedpaths/Makefile.in
+++ b/include/geos/operation/sharedpaths/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/union/Makefile.in b/include/geos/operation/union/Makefile.in
index 55787a2..a941c9d 100644
--- a/include/geos/operation/union/Makefile.in
+++ b/include/geos/operation/union/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/operation/valid/Makefile.in b/include/geos/operation/valid/Makefile.in
index fae15bd..3f5b6c7 100644
--- a/include/geos/operation/valid/Makefile.in
+++ b/include/geos/operation/valid/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/planargraph/Makefile.in b/include/geos/planargraph/Makefile.in
index ca57d68..cb9a987 100644
--- a/include/geos/planargraph/Makefile.in
+++ b/include/geos/planargraph/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/planargraph/algorithm/Makefile.in b/include/geos/planargraph/algorithm/Makefile.in
index fb595f5..6335b78 100644
--- a/include/geos/planargraph/algorithm/Makefile.in
+++ b/include/geos/planargraph/algorithm/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/platform.h.cmake b/include/geos/platform.h.cmake
index f6f5d16..035a48a 100644
--- a/include/geos/platform.h.cmake
+++ b/include/geos/platform.h.cmake
@@ -19,6 +19,12 @@
#ifndef GEOS_PLATFORM_H_INCLUDED
#define GEOS_PLATFORM_H_INCLUDED
+#ifdef _MSC_VER
+#ifndef NOMINMAX
+#define NOMINMAX 1
+#endif
+#endif
+
/* Disable inclusion of platform.h not generated by CMake */
#define GEOS_PLATFORM_H 1
diff --git a/include/geos/platform.h.in b/include/geos/platform.h.in
index d8d4558..c3bc9c8 100644
--- a/include/geos/platform.h.in
+++ b/include/geos/platform.h.in
@@ -86,7 +86,7 @@ extern "C"
#endif
#if defined(HAVE_ISNAN)
-# define ISNAN(x) (isnan(x))
+# define ISNAN(x) (std::isnan(x))
#else
# if defined(_MSC_VER)
# define ISNAN(x) _isnan(x)
diff --git a/include/geos/precision/Makefile.in b/include/geos/precision/Makefile.in
index 830a7c1..76bef2d 100644
--- a/include/geos/precision/Makefile.in
+++ b/include/geos/precision/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/simplify/Makefile.in b/include/geos/simplify/Makefile.in
index e8e5ce2..d3cf78b 100644
--- a/include/geos/simplify/Makefile.in
+++ b/include/geos/simplify/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/triangulate/Makefile.in b/include/geos/triangulate/Makefile.in
index deec3c6..ea81199 100644
--- a/include/geos/triangulate/Makefile.in
+++ b/include/geos/triangulate/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/triangulate/quadedge/Makefile.in b/include/geos/triangulate/quadedge/Makefile.in
index 6ae41b1..7bd9fe9 100644
--- a/include/geos/triangulate/quadedge/Makefile.in
+++ b/include/geos/triangulate/quadedge/Makefile.in
@@ -380,6 +380,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/triangulate/quadedge/QuadEdgeSubdivision.h b/include/geos/triangulate/quadedge/QuadEdgeSubdivision.h
index bbf4547..d36f172 100644
--- a/include/geos/triangulate/quadedge/QuadEdgeSubdivision.h
+++ b/include/geos/triangulate/quadedge/QuadEdgeSubdivision.h
@@ -78,7 +78,7 @@ const double EDGE_COINCIDENCE_TOL_FACTOR = 1000;
*/
class GEOS_DLL QuadEdgeSubdivision {
public:
- typedef std::list<QuadEdge*> QuadEdgeList;
+ typedef std::vector<QuadEdge*> QuadEdgeList;
/**
* Gets the edges for the triangle to the left of the given {@link QuadEdge}.
diff --git a/include/geos/util/Makefile.in b/include/geos/util/Makefile.in
index 7ed2685..f137291 100644
--- a/include/geos/util/Makefile.in
+++ b/include/geos/util/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/include/geos/version.h.vc b/include/geos/version.h.vc
index 3d72406..383243f 100644
--- a/include/geos/version.h.vc
+++ b/include/geos/version.h.vc
@@ -34,11 +34,11 @@
#endif
#ifndef GEOS_VERSION_PATCH
-#define GEOS_VERSION_PATCH 0
+#define GEOS_VERSION_PATCH 1
#endif
#ifndef GEOS_VERSION
-#define GEOS_VERSION "3.5.0"
+#define GEOS_VERSION "3.5.1"
#endif
#ifndef GEOS_JTS_PORT
diff --git a/install-sh b/install-sh
index 0b0fdcb..59990a1 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2013-12-25.23; # UTC
+scriptversion=2014-09-12.12; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -324,34 +324,41 @@ do
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
+ # $RANDOM is not portable (e.g. dash); use it when possible to
+ # lower collision chance
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+ # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
+ # create the $tmpdir first (and fail if unsuccessful) to make sure
+ # that nobody tries to guess the $tmpdir name.
if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
- rmdir "$tmpdir/d" "$tmpdir"
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac;;
diff --git a/ltmain.sh b/ltmain.sh
index 0f0a2da..147d758 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -31,7 +31,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION=2.4.6
+VERSION="2.4.6 Debian-2.4.6-0.1"
package_revision=2.4.6
@@ -2073,7 +2073,7 @@ include the following information:
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
Report bugs to <bug-libtool at gnu.org>.
-GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+GNU libtool home page: <http://www.gnu.org/s/libtool/>.
General help using GNU software: <http://www.gnu.org/gethelp/>."
exit 0
}
@@ -7272,10 +7272,13 @@ func_mode_link ()
# -tp=* Portland pgcc target processor selection
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
# -stdlib=* select c++ std lib with clang
+ # -fsanitize=* Clang/GCC memory and address sanitizer
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*|-fsanitize=*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
@@ -7568,7 +7571,10 @@ func_mode_link ()
case $pass in
dlopen) libs=$dlfiles ;;
dlpreopen) libs=$dlprefiles ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ link)
+ libs="$deplibs %DEPLIBS%"
+ test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+ ;;
esac
fi
if test lib,dlpreopen = "$linkmode,$pass"; then
@@ -7887,19 +7893,19 @@ func_mode_link ()
# It is a libtool convenience library, so add in its objects.
func_append convenience " $ladir/$objdir/$old_library"
func_append old_convenience " $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
elif test prog != "$linkmode" && test lib != "$linkmode"; then
func_fatal_error "'$lib' is not a convenience library"
fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
continue
fi # $pass = conv
@@ -8823,6 +8829,9 @@ func_mode_link ()
revision=$number_minor
lt_irix_increment=no
;;
+ *)
+ func_fatal_configuration "$modename: unknown library version type '$version_type'"
+ ;;
esac
;;
no)
diff --git a/macros/._libtool.m4 b/macros/._libtool.m4
deleted file mode 100644
index 4b8deb2..0000000
Binary files a/macros/._libtool.m4 and /dev/null differ
diff --git a/macros/._ltoptions.m4 b/macros/._ltoptions.m4
deleted file mode 100644
index 3d07a38..0000000
Binary files a/macros/._ltoptions.m4 and /dev/null differ
diff --git a/macros/._ltsugar.m4 b/macros/._ltsugar.m4
deleted file mode 100644
index bc3a289..0000000
Binary files a/macros/._ltsugar.m4 and /dev/null differ
diff --git a/macros/._lt~obsolete.m4 b/macros/._lt~obsolete.m4
deleted file mode 100644
index a5ff095..0000000
Binary files a/macros/._lt~obsolete.m4 and /dev/null differ
diff --git a/macros/Makefile.in b/macros/Makefile.in
index b70fbb5..3143709 100644
--- a/macros/Makefile.in
+++ b/macros/Makefile.in
@@ -294,6 +294,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/macros/libtool.m4 b/macros/libtool.m4
index a3bc337..10ab284 100644
--- a/macros/libtool.m4
+++ b/macros/libtool.m4
@@ -2887,6 +2887,18 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
dynamic_linker='GNU/Linux ld.so'
;;
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
netbsd*)
version_type=sunos
need_lib_prefix=no
@@ -3546,7 +3558,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
-netbsd*)
+netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
else
@@ -4424,7 +4436,7 @@ m4_if([$1], [CXX], [
;;
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
;;
*qnx* | *nto*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4936,6 +4948,9 @@ m4_if([$1], [CXX], [
;;
esac
;;
+ linux* | k*bsd*-gnu | gnu*)
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ ;;
*)
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
@@ -4998,6 +5013,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
openbsd* | bitrig*)
with_gnu_ld=no
;;
+ linux* | k*bsd*-gnu | gnu*)
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ ;;
esac
_LT_TAGVAR(ld_shlibs, $1)=yes
@@ -5252,7 +5270,7 @@ _LT_EOF
fi
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
@@ -5773,6 +5791,7 @@ _LT_EOF
if test yes = "$lt_cv_irix_exported_symbol"; then
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
+ _LT_TAGVAR(link_all_deplibs, $1)=no
else
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
@@ -5794,7 +5813,7 @@ _LT_EOF
esac
;;
- netbsd*)
+ netbsd* | netbsdelf*-gnu)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
diff --git a/nmake.opt b/nmake.opt
index 1c9d6b8..a78515c 100644
--- a/nmake.opt
+++ b/nmake.opt
@@ -135,6 +135,9 @@ GEOS_MSC = 1900
!ELSEIF "$(_NMAKE_VER)" == "14.00.23026.0"
GEOS_MSVC = 14.0
GEOS_MSC = 1900
+!ELSEIF "$(_NMAKE_VER)" == "14.00.24210.0"
+GEOS_MSVC = 14.0
+GEOS_MSC = 1900
!ELSE
GEOS_MSVC = 0.0
GEOS_MSC = 0
diff --git a/php/Makefile.in b/php/Makefile.in
index d8c343e..403b843 100644
--- a/php/Makefile.in
+++ b/php/Makefile.in
@@ -440,6 +440,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/php/test/Makefile.in b/php/test/Makefile.in
index c47b80c..b5be71e 100644
--- a/php/test/Makefile.in
+++ b/php/test/Makefile.in
@@ -518,6 +518,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/Makefile.in b/src/Makefile.in
index 9d27e65..d8188e5 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -417,6 +417,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/algorithm/Makefile.in b/src/algorithm/Makefile.in
index 5d576da..ab1aaa7 100644
--- a/src/algorithm/Makefile.in
+++ b/src/algorithm/Makefile.in
@@ -389,6 +389,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/algorithm/PointLocator.cpp b/src/algorithm/PointLocator.cpp
index 2900952..0f412a7 100644
--- a/src/algorithm/PointLocator.cpp
+++ b/src/algorithm/PointLocator.cpp
@@ -20,6 +20,7 @@
#include <geos/algorithm/PointLocator.h>
#include <geos/algorithm/CGAlgorithms.h>
#include <geos/geom/Geometry.h>
+#include <geos/geom/Point.h>
#include <geos/geom/LineString.h>
#include <geos/geom/LinearRing.h>
#include <geos/geom/MultiLineString.h>
@@ -61,8 +62,11 @@ PointLocator::locate(const Coordinate& p, const Geometry *geom)
void
PointLocator::computeLocation(const Coordinate& p, const Geometry *geom)
{
-
- if (const LineString *ls=dynamic_cast<const LineString*>(geom))
+ if (const Point *pt=dynamic_cast<const Point*>(geom))
+ {
+ updateLocationInfo(locate(p, pt));
+ }
+ else if (const LineString *ls=dynamic_cast<const LineString*>(geom))
{
updateLocationInfo(locate(p, ls));
}
@@ -111,6 +115,17 @@ PointLocator::updateLocationInfo(int loc)
/* private */
int
+PointLocator::locate(const Coordinate& p, const Point *pt)
+{
+ // no point in doing envelope test, since equality test is just as fast
+ const Coordinate *ptCoord = pt->getCoordinate();
+ if (ptCoord->equals2D(p))
+ return Location::INTERIOR;
+ return Location::EXTERIOR;
+}
+
+/* private */
+int
PointLocator::locate(const Coordinate& p, const LineString *l)
{
const CoordinateSequence* pt=l->getCoordinatesRO();
diff --git a/src/algorithm/distance/Makefile.in b/src/algorithm/distance/Makefile.in
index 3b2839c..920ebbe 100644
--- a/src/algorithm/distance/Makefile.in
+++ b/src/algorithm/distance/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/algorithm/locate/Makefile.in b/src/algorithm/locate/Makefile.in
index b9002a4..b0a3afa 100644
--- a/src/algorithm/locate/Makefile.in
+++ b/src/algorithm/locate/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/geom/Makefile.in b/src/geom/Makefile.in
index 9aff5c7..7416ba7 100644
--- a/src/geom/Makefile.in
+++ b/src/geom/Makefile.in
@@ -389,6 +389,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/geom/prep/Makefile.in b/src/geom/prep/Makefile.in
index 2882bdc..3bbae9b 100644
--- a/src/geom/prep/Makefile.in
+++ b/src/geom/prep/Makefile.in
@@ -345,6 +345,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/geom/prep/PreparedPoint.cpp b/src/geom/prep/PreparedPoint.cpp
index 2018faa..1f906fe 100644
--- a/src/geom/prep/PreparedPoint.cpp
+++ b/src/geom/prep/PreparedPoint.cpp
@@ -18,7 +18,6 @@
#include <geos/geom/prep/PreparedPoint.h>
-#include <geos/geom/Point.h>
namespace geos {
namespace geom { // geos.geom
@@ -29,10 +28,6 @@ PreparedPoint::intersects(const geom::Geometry* g) const
{
if (! envelopesIntersect( g)) return false;
- const Point *pt_geom = dynamic_cast<const Point *>(g);
- if (pt_geom)
- return getGeometry().equals(g);
-
// This avoids computing topology for the test geometry
return isAnyTargetComponentInTest( g);
}
diff --git a/src/geom/util/GeometryEditor.cpp b/src/geom/util/GeometryEditor.cpp
index fd45607..814b720 100644
--- a/src/geom/util/GeometryEditor.cpp
+++ b/src/geom/util/GeometryEditor.cpp
@@ -112,6 +112,13 @@ GeometryEditor::editPolygon(const Polygon *polygon,GeometryEditorOperation *oper
if (newPolygon->isEmpty()) {
//RemoveSelectedPlugIn relies on this behaviour. [Jon Aquino]
return newPolygon;
+ if ( newPolygon->getFactory() != factory ) {
+ Polygon *ret = factory->createPolygon(NULL, NULL);
+ delete newPolygon;
+ return ret;
+ } else {
+ return newPolygon;
+ }
}
Geometry* editResult = edit(newPolygon->getExteriorRing(),operation);
diff --git a/src/geom/util/Makefile.in b/src/geom/util/Makefile.in
index 0557353..f03d940 100644
--- a/src/geom/util/Makefile.in
+++ b/src/geom/util/Makefile.in
@@ -344,6 +344,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/geomgraph/GeometryGraph.cpp b/src/geomgraph/GeometryGraph.cpp
index 114692a..936094e 100644
--- a/src/geomgraph/GeometryGraph.cpp
+++ b/src/geomgraph/GeometryGraph.cpp
@@ -363,30 +363,34 @@ SegmentIntersector*
GeometryGraph::computeSelfNodes(LineIntersector &li,
bool computeRingSelfNodes, const Envelope *env)
{
- SegmentIntersector *si=new SegmentIntersector(&li,true,false);
- auto_ptr<EdgeSetIntersector> esi(createEdgeSetIntersector());
+ return computeSelfNodes(li, computeRingSelfNodes, false, env);
+}
+
+SegmentIntersector*
+GeometryGraph::computeSelfNodes(LineIntersector &li,
+ bool computeRingSelfNodes, bool isDoneIfProperInt, const Envelope *env)
+{
+ SegmentIntersector *si = new SegmentIntersector(&li, true, false);
+ si->setIsDoneIfProperInt(isDoneIfProperInt);
+ auto_ptr<EdgeSetIntersector> esi(createEdgeSetIntersector());
typedef vector<Edge*> EC;
EC *se = edges;
EC self_edges_copy;
+
if ( env && ! env->covers(parentGeom->getEnvelopeInternal()) ) {
collect_intersecting_edges(env, se->begin(), se->end(), self_edges_copy);
//cerr << "(computeSelfNodes) Self edges reduced from " << se->size() << " to " << self_edges_copy.size() << endl;
se = &self_edges_copy;
}
- // optimized test for Polygons and Rings
- if (! computeRingSelfNodes
- && ( dynamic_cast<const LinearRing*>(parentGeom)
+ bool isRings = dynamic_cast<const LinearRing*>(parentGeom)
|| dynamic_cast<const Polygon*>(parentGeom)
- || dynamic_cast<const MultiPolygon*>(parentGeom) ))
- {
- esi->computeIntersections(se, si, false);
- }
- else
- {
- esi->computeIntersections(se, si, true);
- }
+ || dynamic_cast<const MultiPolygon*>(parentGeom);
+
+ bool computeAllSegments = computeRingSelfNodes || ! isRings;
+
+ esi->computeIntersections(se, si, computeAllSegments);
#if GEOS_DEBUG
cerr << "SegmentIntersector # tests = " << si->numTests << endl;
diff --git a/src/geomgraph/Makefile.in b/src/geomgraph/Makefile.in
index 2cad683..8616738 100644
--- a/src/geomgraph/Makefile.in
+++ b/src/geomgraph/Makefile.in
@@ -386,6 +386,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/geomgraph/PlanarGraph.cpp b/src/geomgraph/PlanarGraph.cpp
index ff1313b..e154cae 100644
--- a/src/geomgraph/PlanarGraph.cpp
+++ b/src/geomgraph/PlanarGraph.cpp
@@ -133,13 +133,14 @@ PlanarGraph::insertEdge(Edge *e)
void
PlanarGraph::add(EdgeEnd* e)
{
+ // It is critical to add the edge to the edgeEndList first,
+ // then it is safe to follow with any potentially throwing operations.
+ assert(edgeEndList);
+ edgeEndList->push_back(e);
assert(e);
assert(nodes);
nodes->add(e);
-
- assert(edgeEndList);
- edgeEndList->push_back(e);
}
/*public*/
@@ -211,13 +212,14 @@ PlanarGraph::addEdges(const vector<Edge*>& edgesToAdd)
// PlanarGraph destructor will delete all DirectedEdges
// in edgeEndList, which is where these are added
// by the ::add(EdgeEnd) call
- DirectedEdge *de1=new DirectedEdge(e, true);
- DirectedEdge *de2=new DirectedEdge(e, false);
-
- de1->setSym(de2);
- de2->setSym(de1);
- add(de1);
- add(de2);
+ std::auto_ptr<DirectedEdge> de1(new DirectedEdge(e, true));
+ std::auto_ptr<DirectedEdge> de2(new DirectedEdge(e, false));
+ de1->setSym(de2.get());
+ de2->setSym(de1.get());
+
+ // First, ::add takes the ownership, then follows with operations that may throw.
+ add(de1.release());
+ add(de2.release());
}
}
diff --git a/src/geomgraph/index/Makefile.in b/src/geomgraph/index/Makefile.in
index 0730769..05df9e0 100644
--- a/src/geomgraph/index/Makefile.in
+++ b/src/geomgraph/index/Makefile.in
@@ -343,6 +343,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/geomgraph/index/SegmentIntersector.cpp b/src/geomgraph/index/SegmentIntersector.cpp
index 24f6de4..4f5288a 100644
--- a/src/geomgraph/index/SegmentIntersector.cpp
+++ b/src/geomgraph/index/SegmentIntersector.cpp
@@ -73,6 +73,18 @@ SegmentIntersector::hasIntersection()
return hasIntersectionVar;
}
+void
+SegmentIntersector::setIsDoneIfProperInt(bool idwpi)
+{
+ isDoneWhenProperInt = idwpi;
+}
+
+bool
+SegmentIntersector::getIsDone()
+{
+ return isDone;
+}
+
/*
* A proper intersection is an intersection which is interior to at least two
* line segments. Note that a proper intersection is not necessarily
@@ -184,6 +196,10 @@ SegmentIntersector::addIntersections(Edge *e0,int segIndex0,Edge *e1,int segInde
cerr<<"SegmentIntersector::addIntersections(): properIntersectionPoint: "<<properIntersectionPoint.toString()<<endl;
#endif // DEBUG_INTERSECT
hasProper=true;
+ if (isDoneWhenProperInt)
+ {
+ isDone = true;
+ }
if (!isBoundaryPoint(li,bdyNodes))
hasProperInterior=true;
}
diff --git a/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp b/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
index f78238c..25a6b23 100644
--- a/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
+++ b/src/geomgraph/index/SimpleMCSweepLineIntersector.cpp
@@ -135,6 +135,10 @@ SimpleMCSweepLineIntersector::computeIntersections(SegmentIntersector *si)
{
processOverlaps(i,ev->getDeleteEventIndex(),ev,si);
}
+ if (si->getIsDone())
+ {
+ break;
+ }
}
}
diff --git a/src/index/Makefile.in b/src/index/Makefile.in
index 3def65a..4b28b47 100644
--- a/src/index/Makefile.in
+++ b/src/index/Makefile.in
@@ -381,6 +381,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/index/bintree/Makefile.in b/src/index/bintree/Makefile.in
index 8b6a159..9943384 100644
--- a/src/index/bintree/Makefile.in
+++ b/src/index/bintree/Makefile.in
@@ -340,6 +340,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/index/chain/Makefile.in b/src/index/chain/Makefile.in
index 6cdbd4a..0018bfd 100644
--- a/src/index/chain/Makefile.in
+++ b/src/index/chain/Makefile.in
@@ -340,6 +340,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/index/intervalrtree/Makefile.in b/src/index/intervalrtree/Makefile.in
index 14056d7..c16ad58 100644
--- a/src/index/intervalrtree/Makefile.in
+++ b/src/index/intervalrtree/Makefile.in
@@ -341,6 +341,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/index/quadtree/Makefile.in b/src/index/quadtree/Makefile.in
index 6cd69ee..47e3d40 100644
--- a/src/index/quadtree/Makefile.in
+++ b/src/index/quadtree/Makefile.in
@@ -340,6 +340,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/index/strtree/Makefile.in b/src/index/strtree/Makefile.in
index d116c7c..8f77508 100644
--- a/src/index/strtree/Makefile.in
+++ b/src/index/strtree/Makefile.in
@@ -340,6 +340,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/index/sweepline/Makefile.in b/src/index/sweepline/Makefile.in
index 1803bbd..a612576 100644
--- a/src/index/sweepline/Makefile.in
+++ b/src/index/sweepline/Makefile.in
@@ -340,6 +340,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/io/Makefile.in b/src/io/Makefile.in
index 9d63ad0..4683694 100644
--- a/src/io/Makefile.in
+++ b/src/io/Makefile.in
@@ -347,6 +347,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/io/StringTokenizer.cpp b/src/io/StringTokenizer.cpp
index 79975d8..1b358e7 100644
--- a/src/io/StringTokenizer.cpp
+++ b/src/io/StringTokenizer.cpp
@@ -21,6 +21,7 @@
#include <string>
#include <cstdlib>
+#include <limits>
using namespace std;
diff --git a/src/linearref/Makefile.in b/src/linearref/Makefile.in
index e9178bb..a0a0fde 100644
--- a/src/linearref/Makefile.in
+++ b/src/linearref/Makefile.in
@@ -343,6 +343,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/noding/Makefile.in b/src/noding/Makefile.in
index c1a6ec2..80f4291 100644
--- a/src/noding/Makefile.in
+++ b/src/noding/Makefile.in
@@ -389,6 +389,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/noding/snapround/Makefile.in b/src/noding/snapround/Makefile.in
index 7b66c21..8811b41 100644
--- a/src/noding/snapround/Makefile.in
+++ b/src/noding/snapround/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/Makefile.in b/src/operation/Makefile.in
index 6859ac2..cdfd94c 100644
--- a/src/operation/Makefile.in
+++ b/src/operation/Makefile.in
@@ -386,6 +386,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/buffer/BufferBuilder.cpp b/src/operation/buffer/BufferBuilder.cpp
index b671a7c..7e80628 100644
--- a/src/operation/buffer/BufferBuilder.cpp
+++ b/src/operation/buffer/BufferBuilder.cpp
@@ -151,7 +151,7 @@ BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
BufferParameters modParams = bufParams;
modParams.setEndCapStyle(BufferParameters::CAP_FLAT);
modParams.setSingleSided(false); // ignore parameter for areal-only geometries
- Geometry* buf = 0;
+ std::auto_ptr<Geometry> buf;
// This is a (temp?) hack to workaround the fact that
// BufferBuilder BufferParamaters are immutable after
@@ -159,11 +159,11 @@ BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
// style to FLAT for single-sided buffering
{
BufferBuilder tmp(modParams);
- buf = tmp.buffer( l, distance );
+ buf.reset( tmp.buffer( l, distance ) );
}
// Create MultiLineStrings from this polygon.
- Geometry* bufLineString = buf->getBoundary();
+ std::auto_ptr<Geometry> bufLineString ( buf->getBoundary() );
#ifdef GEOS_DEBUG_SSB
std::cerr << "input|" << *l << std::endl;
@@ -219,8 +219,8 @@ BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
for (size_t i=0, n=curveList.size(); i<n; ++i) delete curveList[i];
curveList.clear();
- Geometry* singleSided = geomFact->createMultiLineString(
- singleSidedNodedEdges );
+ std::auto_ptr<Geometry> singleSided ( geomFact->createMultiLineString(
+ singleSidedNodedEdges ) );
#ifdef GEOS_DEBUG_SSB
std::cerr << "edges|" << *singleSided << std::endl;
@@ -233,7 +233,7 @@ BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
// diverge from original offset curves due to the addition of
// intersections with caps and joins curves
using geos::operation::overlay::snap::SnapOverlayOp;
- Geometry* intersectedLines = SnapOverlayOp::overlayOp(*singleSided, *bufLineString, OverlayOp::opINTERSECTION).release();
+ std::auto_ptr<Geometry> intersectedLines = SnapOverlayOp::overlayOp(*singleSided, *bufLineString, OverlayOp::opINTERSECTION);
#ifdef GEOS_DEBUG_SSB
std::cerr << "intersection" << "|" << *intersectedLines << std::endl;
@@ -241,7 +241,7 @@ BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
// Merge result lines together.
LineMerger lineMerge;
- lineMerge.add( intersectedLines );
+ lineMerge.add( intersectedLines.get() );
std::auto_ptr< std::vector< LineString* > > mergedLines (
lineMerge.getMergedLineStrings() );
@@ -338,10 +338,10 @@ BufferBuilder::bufferLineSingleSided( const Geometry* g, double distance,
// Clean up.
if ( noder != workingNoder ) delete noder;
- geomFact->destroyGeometry( buf );
- geomFact->destroyGeometry( bufLineString );
- geomFact->destroyGeometry( singleSided );
- geomFact->destroyGeometry( intersectedLines );
+ buf.reset();
+ bufLineString.reset();
+ singleSided.reset();
+ intersectedLines.reset();
if ( mergedLinesGeom->size() > 1 )
{
diff --git a/src/operation/buffer/Makefile.in b/src/operation/buffer/Makefile.in
index 04c438c..bdd8f2a 100644
--- a/src/operation/buffer/Makefile.in
+++ b/src/operation/buffer/Makefile.in
@@ -385,6 +385,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/distance/Makefile.in b/src/operation/distance/Makefile.in
index 8751d31..f830745 100644
--- a/src/operation/distance/Makefile.in
+++ b/src/operation/distance/Makefile.in
@@ -383,6 +383,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/intersection/Makefile.in b/src/operation/intersection/Makefile.in
index b141d70..23e175e 100644
--- a/src/operation/intersection/Makefile.in
+++ b/src/operation/intersection/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/linemerge/Makefile.in b/src/operation/linemerge/Makefile.in
index 6b36304..10b3d86 100644
--- a/src/operation/linemerge/Makefile.in
+++ b/src/operation/linemerge/Makefile.in
@@ -383,6 +383,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/overlay/Makefile.in b/src/operation/overlay/Makefile.in
index 4e19ae2..8618940 100644
--- a/src/operation/overlay/Makefile.in
+++ b/src/operation/overlay/Makefile.in
@@ -393,6 +393,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/overlay/snap/LineStringSnapper.cpp b/src/operation/overlay/snap/LineStringSnapper.cpp
index 887f89b..fea0624 100644
--- a/src/operation/overlay/snap/LineStringSnapper.cpp
+++ b/src/operation/overlay/snap/LineStringSnapper.cpp
@@ -153,13 +153,20 @@ cerr << " Vertex to be snapped found, snapping" << endl;
if (vertpos == srcCoords.begin() && isClosed)
{
vertpos = srcCoords.end(); --vertpos;
+#if GEOS_DEBUG
+cerr << " Snapped vertex was first in a closed line, also snapping last" << endl;
+#endif
*vertpos = snapPt;
}
+#if GEOS_DEBUG
+cerr << " After snapping of vertex " << snapPt << ", srcCoors are: " << srcCoords << endl;
+#endif
+
}
#if GEOS_DEBUG
-cerr << " After vertex snapping, srcCoors are: " << srcCoords << endl;
+cerr << " After vertices snapping, srcCoors are: " << srcCoords << endl;
#endif
}
@@ -333,9 +340,11 @@ cerr << " Before seg-snapping, srcCoors are: " << srcCoords << endl;
LineSegment prevSeg(*segpos, seg.p0);
if ( prevSeg.distance(newSnapPt) < seg.distance(newSnapPt) ) {
#if GEOS_DEBUG
- cerr << " Prev segment closer, inserting " << newSnapPt << " into " << prevSeg << endl;
+ cerr << " Prev segment closer, inserting " << newSnapPt << " into "
+ << prevSeg << endl;
#endif
// insert into prev segment
+ ++segpos;
srcCoords.insert(segpos, newSnapPt);
} else {
#if GEOS_DEBUG
diff --git a/src/operation/polygonize/Makefile.in b/src/operation/polygonize/Makefile.in
index 4545f85..b38a779 100644
--- a/src/operation/polygonize/Makefile.in
+++ b/src/operation/polygonize/Makefile.in
@@ -383,6 +383,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/predicate/Makefile.in b/src/operation/predicate/Makefile.in
index 6a446c9..7743443 100644
--- a/src/operation/predicate/Makefile.in
+++ b/src/operation/predicate/Makefile.in
@@ -346,6 +346,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/relate/Makefile.in b/src/operation/relate/Makefile.in
index 81ebd4d..7b51f2d 100644
--- a/src/operation/relate/Makefile.in
+++ b/src/operation/relate/Makefile.in
@@ -383,6 +383,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/sharedpaths/Makefile.in b/src/operation/sharedpaths/Makefile.in
index ee7eed2..19b2547 100644
--- a/src/operation/sharedpaths/Makefile.in
+++ b/src/operation/sharedpaths/Makefile.in
@@ -381,6 +381,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/union/Makefile.in b/src/operation/union/Makefile.in
index 5110a34..6865981 100644
--- a/src/operation/union/Makefile.in
+++ b/src/operation/union/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/operation/valid/ConsistentAreaTester.cpp b/src/operation/valid/ConsistentAreaTester.cpp
index 63f50ad..ee30230 100644
--- a/src/operation/valid/ConsistentAreaTester.cpp
+++ b/src/operation/valid/ConsistentAreaTester.cpp
@@ -69,7 +69,10 @@ ConsistentAreaTester::isNodeConsistentArea()
* To fully check validity, it is necessary to
* compute ALL intersections, including self-intersections within a single edge.
*/
- auto_ptr<SegmentIntersector> intersector(geomGraph->computeSelfNodes(&li, true));
+ auto_ptr<SegmentIntersector> intersector(geomGraph->computeSelfNodes(&li, true, true));
+ /**
+ * A proper intersection means that the area is not consistent.
+ */
if (intersector->hasProperIntersection()) {
invalidPoint=intersector->getProperIntersectionPoint();
return false;
diff --git a/src/operation/valid/IsValidOp.cpp b/src/operation/valid/IsValidOp.cpp
index da3f5c4..5090e6f 100644
--- a/src/operation/valid/IsValidOp.cpp
+++ b/src/operation/valid/IsValidOp.cpp
@@ -189,7 +189,7 @@ IsValidOp::checkValid(const LinearRing *g){
if (validErr!=NULL) return;
LineIntersector li;
- delete graph.computeSelfNodes(&li, true);
+ delete graph.computeSelfNodes(&li, true, true);
checkNoSelfIntersectingRings(&graph);
}
diff --git a/src/operation/valid/Makefile.in b/src/operation/valid/Makefile.in
index d599be0..f830074 100644
--- a/src/operation/valid/Makefile.in
+++ b/src/operation/valid/Makefile.in
@@ -403,6 +403,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/planargraph/Makefile.in b/src/planargraph/Makefile.in
index f922900..f051234 100644
--- a/src/planargraph/Makefile.in
+++ b/src/planargraph/Makefile.in
@@ -388,6 +388,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/precision/Makefile.in b/src/precision/Makefile.in
index ffed8be..2a1f4a0 100644
--- a/src/precision/Makefile.in
+++ b/src/precision/Makefile.in
@@ -385,6 +385,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/simplify/Makefile.in b/src/simplify/Makefile.in
index 539ca93..8a17852 100644
--- a/src/simplify/Makefile.in
+++ b/src/simplify/Makefile.in
@@ -385,6 +385,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/triangulate/Makefile.in b/src/triangulate/Makefile.in
index 9654dd4..a64a467 100644
--- a/src/triangulate/Makefile.in
+++ b/src/triangulate/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/triangulate/quadedge/Makefile.in b/src/triangulate/quadedge/Makefile.in
index d3c8e24..54d9ed3 100644
--- a/src/triangulate/quadedge/Makefile.in
+++ b/src/triangulate/quadedge/Makefile.in
@@ -384,6 +384,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
index 32680b5..1ceeb1d 100644
--- a/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
+++ b/src/triangulate/quadedge/QuadEdgeSubdivision.cpp
@@ -17,6 +17,7 @@
**********************************************************************/
#include <geos/triangulate/quadedge/QuadEdgeSubdivision.h>
+#include <algorithm>
#include <vector>
#include <set>
#include <iostream>
@@ -159,8 +160,8 @@ QuadEdgeSubdivision::remove(QuadEdge &e)
QuadEdge::splice(e, e.oPrev());
QuadEdge::splice(e.sym(), e.sym().oPrev());
- // this is inefficient on an ArrayList, but this method should be called infrequently
- quadEdges.remove(&e);
+ // this is inefficient on a std::vector, but this method should be called infrequently
+ quadEdges.erase(std::remove(quadEdges.begin(), quadEdges.end(), &e), quadEdges.end());
//mark these edges as removed
e.remove();
diff --git a/src/util/Makefile.in b/src/util/Makefile.in
index da7b119..8c013ac 100644
--- a/src/util/Makefile.in
+++ b/src/util/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/swig/Makefile.in b/swig/Makefile.in
index e196a8c..c322a36 100644
--- a/swig/Makefile.in
+++ b/swig/Makefile.in
@@ -355,6 +355,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/swig/geos.i b/swig/geos.i
index 8b78393..ead0a2f 100644
--- a/swig/geos.i
+++ b/swig/geos.i
@@ -29,16 +29,16 @@
the whole c api. */
#define GEOS_VERSION_MAJOR 3
#define GEOS_VERSION_MINOR 5
-#define GEOS_VERSION_PATCH 0
-#define GEOS_VERSION "3.5.0"
+#define GEOS_VERSION_PATCH 1
+#define GEOS_VERSION "3.5.1"
#define GEOS_JTS_PORT "1.13.0"
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 9
-#define GEOS_CAPI_VERSION_PATCH 0
+#define GEOS_CAPI_VERSION_PATCH 1
#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
-#define GEOS_CAPI_VERSION "3.5.0-CAPI-1.9.0"
+#define GEOS_CAPI_VERSION "3.5.1-CAPI-1.9.1"
/* Supported geometry types */
enum GEOSGeomTypes {
diff --git a/swig/python/Makefile.in b/swig/python/Makefile.in
index e0d17cf..0ef9fca 100644
--- a/swig/python/Makefile.in
+++ b/swig/python/Makefile.in
@@ -427,6 +427,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/swig/python/tests/Makefile.in b/swig/python/tests/Makefile.in
index 035b57b..6e0eb17 100644
--- a/swig/python/tests/Makefile.in
+++ b/swig/python/tests/Makefile.in
@@ -290,6 +290,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/swig/ruby/Makefile.in b/swig/ruby/Makefile.in
index 6d13c3f..fad9841 100644
--- a/swig/ruby/Makefile.in
+++ b/swig/ruby/Makefile.in
@@ -417,6 +417,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/swig/ruby/test/Makefile.in b/swig/ruby/test/Makefile.in
index af9ad07..5454201 100644
--- a/swig/ruby/test/Makefile.in
+++ b/swig/ruby/test/Makefile.in
@@ -290,6 +290,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 255182c..4e05ef3 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -350,6 +350,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/bigtest/Makefile.in b/tests/bigtest/Makefile.in
index 39c5627..0523c83 100644
--- a/tests/bigtest/Makefile.in
+++ b/tests/bigtest/Makefile.in
@@ -364,6 +364,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/geostest/Makefile.in b/tests/geostest/Makefile.in
index fe354d7..f7258c1 100644
--- a/tests/geostest/Makefile.in
+++ b/tests/geostest/Makefile.in
@@ -338,6 +338,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/perf/Makefile.in b/tests/perf/Makefile.in
index 9e40bbe..f288019 100644
--- a/tests/perf/Makefile.in
+++ b/tests/perf/Makefile.in
@@ -382,6 +382,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/perf/capi/Makefile.in b/tests/perf/capi/Makefile.in
index 1a60310..3e9745f 100644
--- a/tests/perf/capi/Makefile.in
+++ b/tests/perf/capi/Makefile.in
@@ -343,6 +343,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/perf/operation/Makefile.in b/tests/perf/operation/Makefile.in
index 220e499..972c13c 100644
--- a/tests/perf/operation/Makefile.in
+++ b/tests/perf/operation/Makefile.in
@@ -350,6 +350,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/perf/operation/buffer/Makefile.in b/tests/perf/operation/buffer/Makefile.in
index 20a2b47..f77f583 100644
--- a/tests/perf/operation/buffer/Makefile.in
+++ b/tests/perf/operation/buffer/Makefile.in
@@ -346,6 +346,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/perf/operation/predicate/Makefile.in b/tests/perf/operation/predicate/Makefile.in
index 0255676..2682e6e 100644
--- a/tests/perf/operation/predicate/Makefile.in
+++ b/tests/perf/operation/predicate/Makefile.in
@@ -346,6 +346,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/thread/Makefile.in b/tests/thread/Makefile.in
index 5ced8f8..e05a2da 100644
--- a/tests/thread/Makefile.in
+++ b/tests/thread/Makefile.in
@@ -341,6 +341,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/unit/Makefile.in b/tests/unit/Makefile.in
index 976ba84..f67c414 100644
--- a/tests/unit/Makefile.in
+++ b/tests/unit/Makefile.in
@@ -657,6 +657,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tests/unit/algorithm/PointLocatorTest.cpp b/tests/unit/algorithm/PointLocatorTest.cpp
index eaf9dca..509c829 100644
--- a/tests/unit/algorithm/PointLocatorTest.cpp
+++ b/tests/unit/algorithm/PointLocatorTest.cpp
@@ -96,8 +96,15 @@ namespace tut
runPtLocator(Location::EXTERIOR, Coordinate(11, 11),
"LINEARRING(10 10, 10 20, 20 10, 10 10)");
}
-
+ // 5 - TestPointLocator Point inside MultiPoint
+ template<>
+ template<>
+ void object::test<5>()
+ {
+ runPtLocator(Location::INTERIOR, Coordinate(0, 0),
+ "MULTIPOINT ((1 1), (0 0))");
+ }
} // namespace tut
diff --git a/tests/unit/operation/overlay/snap/LineStringSnapperTest.cpp b/tests/unit/operation/overlay/snap/LineStringSnapperTest.cpp
index 8c38e90..4657868 100644
--- a/tests/unit/operation/overlay/snap/LineStringSnapperTest.cpp
+++ b/tests/unit/operation/overlay/snap/LineStringSnapperTest.cpp
@@ -293,7 +293,6 @@ namespace tut
}
// Test two candidate vertices snaps
-/* The following one fails, I bet in JTS too.. but haven't tested
template<>
template<>
void object::test<8>()
@@ -329,6 +328,50 @@ namespace tut
ensure_equals(ret->operator[](1), src_b);
ensure_equals(ret->operator[](2), src_c);
}
-*/
+
+ // Snap of last segment in closed linestring
+ // See https://trac.osgeo.org/geos/ticket/758
+ template<>
+ template<>
+ void object::test<9>()
+ {
+ using geos::geom::Coordinate;
+ using geos::operation::overlay::snap::LineStringSnapper;
+
+ typedef std::auto_ptr<Coordinate::Vect> CoordsVectAptr;
+
+
+ // Source: (1 1, 5 9, 9 1, 1 1)
+ Coordinate src_a(1, 1);
+ Coordinate src_b(5, 9);
+ Coordinate src_c(9, 1);
+ Coordinate::Vect srcCoords;
+ srcCoords.push_back(src_a);
+ srcCoords.push_back(src_b);
+ srcCoords.push_back(src_c);
+ srcCoords.push_back(src_a);
+
+ // Snap: (0 0, 10 0, 1 0.5)
+ Coordinate snp_a(0, 0);
+ Coordinate snp_b(10, 0);
+ Coordinate snp_c(1, 0.5);
+ Coordinate::ConstVect snpCoords;
+ snpCoords.push_back( &snp_a );
+ snpCoords.push_back( &snp_b );
+ snpCoords.push_back( &snp_c );
+
+ // Snap with tolerance of 2
+ // (both first and second point could be snapped)
+ LineStringSnapper snapper(srcCoords, 2);
+
+ // Expect: (0 0, 5 9, 10 0, 1 0.5, 0 0)
+ CoordsVectAptr ret(snapper.snapTo(snpCoords));
+ ensure_equals(ret->size(), 5u);
+ ensure_equals(ret->operator[](0), snp_a); // 0 0
+ ensure_equals(ret->operator[](1), src_b); // 5 9
+ ensure_equals(ret->operator[](2), snp_b); // 10 0
+ ensure_equals(ret->operator[](3), snp_c); // 1 0.5
+ ensure_equals(ret->operator[](4), snp_a); // 0 0
+ }
} // namespace tut
diff --git a/tests/unit/triangulate/DelaunayTest.cpp b/tests/unit/triangulate/DelaunayTest.cpp
index 719e8d9..e6ed3e1 100644
--- a/tests/unit/triangulate/DelaunayTest.cpp
+++ b/tests/unit/triangulate/DelaunayTest.cpp
@@ -181,14 +181,12 @@ namespace tut
v->push_back( Coordinate (150,200) );
v->push_back( Coordinate (180,270) );
v->push_back( Coordinate (275,163) );
+ geos::geom::CoordinateArraySequence seq(v);
- geos::geom::CoordinateArraySequence *seq = new CoordinateArraySequence(v);
-
- Envelope env = DelaunayTriangulationBuilder::envelope(*seq);
+ Envelope env = DelaunayTriangulationBuilder::envelope(seq);
ensure_equals(env.getWidth() , 125);
ensure_equals(env.getHeight() , 107);
-
}
} // namespace tut
diff --git a/tests/xmltester/CMakeLists.txt b/tests/xmltester/CMakeLists.txt
index c6c7534..3ee3eea 100644
--- a/tests/xmltester/CMakeLists.txt
+++ b/tests/xmltester/CMakeLists.txt
@@ -56,10 +56,10 @@ if(GEOS_ENABLE_TESTS)
${XMLTESTS_DIR}/buffer.xml
${XMLTESTS_DIR}/test.xml
${XMLTESTS_DIR}/singlesidedbuffer.xml
- ${XMLTESTS_DIR}/bug176.xml
- ${XMLTESTS_DIR}/bug188.xml
- ${XMLTESTS_DIR}/bug244.xml
- ${XMLTESTS_DIR}/bug275.xml
+ ${XMLTESTS_DIR}/ticket/bug176.xml
+ ${XMLTESTS_DIR}/ticket/bug188.xml
+ ${XMLTESTS_DIR}/ticket/bug244.xml
+ ${XMLTESTS_DIR}/ticket/bug275.xml
${XMLTESTS_DIR}/general/TestBoundary.xml
${XMLTESTS_DIR}/general/TestBuffer.xml
${XMLTESTS_DIR}/general/TestBufferMitredJoin.xml
diff --git a/tests/xmltester/Makefile.in b/tests/xmltester/Makefile.in
index 45f9282..29674aa 100644
--- a/tests/xmltester/Makefile.in
+++ b/tests/xmltester/Makefile.in
@@ -585,6 +585,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 7b77293..748ec8a 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -320,6 +320,7 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
+runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/geos.git
More information about the Pkg-grass-devel
mailing list