aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-11-09 13:39:01 +0100
committerGitHub <noreply@github.com>2021-11-09 13:39:01 +0100
commitce6be7d20c13cd83ddbdea33efa182987a2441bd (patch)
tree60ae98de05da021451538624e9d939f50e709218
parent4a96ce5f6f069ba63ca81654bd0fc1e89321a53c (diff)
parent5ba4e6d453242860197e1970869d778c12d1796c (diff)
downloadPROJ-ce6be7d20c13cd83ddbdea33efa182987a2441bd.tar.gz
PROJ-ce6be7d20c13cd83ddbdea33efa182987a2441bd.zip
Merge pull request #2933 from OSGeo/backport-2932-to-8.2
[Backport 8.2] PROJStringFormatter::toString(): avoid invalid iterator increment (fixes #2931)
-rw-r--r--.github/workflows/windows.yml14
-rw-r--r--src/iso19111/io.cpp2
2 files changed, 11 insertions, 5 deletions
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 4425fccd..9358aaa6 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -8,9 +8,15 @@ jobs:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
+ strategy:
+ fail-fast: false
+ matrix:
+ BUILD_TYPE: [Release, Debug]
+
env:
ARCH: x64
BUILD_SHARED_LIBS: ON
+ BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
steps:
@@ -42,7 +48,7 @@ jobs:
mkdir %PROJ_BUILD%
cd %PROJ_BUILD%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
- cmake -GNinja .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS="{{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%"
+ cmake -GNinja .. -DCMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" -DBUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%"
ninja -v
ninja install
dir %PROJ_DIR%\bin
@@ -55,10 +61,10 @@ jobs:
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
cd %PROJ_BUILD%
- ctest -V -C Release
+ ctest -V -C "${{ env.BUILD_TYPE }}"
set PATH=%PROJ_DIR%\bin;%PATH%
- call %GITHUB_WORKSPACE%\test\postinstall\test_cmake.bat %PROJ_DIR%
- proj
+ if "${{ env.BUILD_TYPE }}"=="Release" call %GITHUB_WORKSPACE%\test\postinstall\test_cmake.bat %PROJ_DIR%
+ if "${{ env.BUILD_TYPE }}"=="Release" proj
MSYS2:
runs-on: windows-latest
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index 5f2472a7..f8a4672a 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -7678,7 +7678,7 @@ const std::string &PROJStringFormatter::toString() const {
iterCur = steps.erase(iterPrev, std::next(iterCur));
if (iterCur != steps.begin())
iterCur = std::prev(iterCur);
- if (iterCur == steps.begin())
+ if (iterCur == steps.begin() && iterCur != steps.end())
++iterCur;
};