forked from bartvdbraak/blender
113ff51476
Based on the patch from Joerg Sonnenberger.
37 lines
999 B
Diff
37 lines
999 B
Diff
diff -r 2e6e59022e6e lib/triangulator.cpp
|
|
--- a/lib/triangulator.cpp Fri Nov 09 09:35:35 2012 +1100
|
|
+++ b/lib/triangulator.cpp Thu Jan 09 16:13:17 2014 +0600
|
|
@@ -27,6 +27,23 @@
|
|
|
|
#include <algorithm>
|
|
|
|
+// Support for latest Clang/LLVM on FreeBSD which does have different libcxx.
|
|
+//
|
|
+// TODO(sergey): Move it some some more generic header with platform-specific
|
|
+// declarations.
|
|
+
|
|
+// Indicates whether __is_heap is available
|
|
+#undef HAVE_IS_HEAP
|
|
+
|
|
+#ifdef __GNUC__
|
|
+// NeyBSD doesn't have __is_heap
|
|
+# ifndef __NetBSD__
|
|
+# define HAVE_IS_HEAP
|
|
+# ifdef _LIBCPP_VERSION
|
|
+# define __is_heap is_heap
|
|
+# endif // _LIBCPP_VERSION
|
|
+# endif // !__NetBSD__
|
|
+#endif // __GNUC__
|
|
|
|
namespace {
|
|
// private code related to hole patching.
|
|
@@ -122,7 +139,7 @@
|
|
std::vector<vertex_info *> queue;
|
|
|
|
void checkheap() {
|
|
-#ifdef __GNUC__
|
|
+#if defined(HAVE_IS_HEAP)
|
|
CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering()));
|
|
#endif
|
|
}
|