diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-03-12 21:10:24 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-03-12 21:12:34 +0400 |
commit | 2e128baefdfd14b9614a01c11008a2efeeb2a918 (patch) | |
tree | 76a11a164c61a967a02d315bad00de59a94ed2bd /extern | |
parent | bce924b43c4c5ff46eec7b340b68f37ae8e15215 (diff) |
Fix T39111: Boolean assert failure on widows
In fact we had this change a while ago, not sue what happened.
Diffstat (limited to 'extern')
-rw-r--r-- | extern/carve/lib/intersect_face_division.cpp | 4 | ||||
-rw-r--r-- | extern/carve/patches/msvc_fix.patch | 14 | ||||
-rw-r--r-- | extern/carve/patches/series | 1 |
3 files changed, 18 insertions, 1 deletions
diff --git a/extern/carve/lib/intersect_face_division.cpp b/extern/carve/lib/intersect_face_division.cpp index ea82b7e89a3..e826948128c 100644 --- a/extern/carve/lib/intersect_face_division.cpp +++ b/extern/carve/lib/intersect_face_division.cpp @@ -1121,7 +1121,9 @@ namespace { } // copy up to the end of the path. - std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out)); + if (pos < e1_1) { + std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out)); + } CARVE_ASSERT(base_loop[e1_1] == p1.back()); std::copy(p1.rbegin(), p1.rend() - 1, std::back_inserter(out)); diff --git a/extern/carve/patches/msvc_fix.patch b/extern/carve/patches/msvc_fix.patch new file mode 100644 index 00000000000..67431ecac75 --- /dev/null +++ b/extern/carve/patches/msvc_fix.patch @@ -0,0 +1,14 @@ +diff -r e82d852e4fb0 lib/intersect_face_division.cpp +--- a/lib/intersect_face_division.cpp Wed Jan 15 13:16:14 2014 +1100 ++++ b/lib/intersect_face_division.cpp Wed Mar 12 23:09:19 2014 +0600 +@@ -1121,7 +1121,9 @@ + } + + // copy up to the end of the path. +- std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out)); ++ if (pos < e1_1) { ++ std::copy(base_loop.begin() + pos, base_loop.begin() + e1_1, std::back_inserter(out)); ++ } + + CARVE_ASSERT(base_loop[e1_1] == p1.back()); + std::copy(p1.rbegin(), p1.rend() - 1, std::back_inserter(out)); diff --git a/extern/carve/patches/series b/extern/carve/patches/series index b1254dd9a7d..62a24d9d730 100644 --- a/extern/carve/patches/series +++ b/extern/carve/patches/series @@ -8,3 +8,4 @@ strict_flags.patch interpolator_reorder.patch mesh_simplify_dissolve_edges.patch memory_leak_fix.patch +mavc_fix.patch |