diff options
Diffstat (limited to 'thirdparty/misc/patches/clipper-exceptions.patch')
-rw-r--r-- | thirdparty/misc/patches/clipper-exceptions.patch | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/thirdparty/misc/patches/clipper-exceptions.patch b/thirdparty/misc/patches/clipper-exceptions.patch deleted file mode 100644 index 537afd59b3..0000000000 --- a/thirdparty/misc/patches/clipper-exceptions.patch +++ /dev/null @@ -1,154 +0,0 @@ -diff --git a/thirdparty/misc/clipper.cpp b/thirdparty/misc/clipper.cpp -index 8c3a59c4ca..c67045d113 100644 ---- a/thirdparty/misc/clipper.cpp -+++ b/thirdparty/misc/clipper.cpp -@@ -48,6 +48,38 @@ - #include <ostream> - #include <functional> - -+//Explicitly disables exceptions handling for target platform -+//#define CLIPPER_NOEXCEPTION -+ -+#define CLIPPER_THROW(exception) std::abort() -+#define CLIPPER_TRY if(true) -+#define CLIPPER_CATCH(exception) if(false) -+ -+#if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND) -+ #ifndef CLIPPER_NOEXCEPTION -+ #undef CLIPPER_THROW -+ #define CLIPPER_THROW(exception) throw exception -+ #undef CLIPPER_TRY -+ #define CLIPPER_TRY try -+ #undef CLIPPER_CATCH -+ #define CLIPPER_CATCH(exception) catch(exception) -+ #endif -+#endif -+ -+//Optionally allows to override exception macros -+#if defined(CLIPPER_THROW_USER) -+ #undef CLIPPER_THROW -+ #define CLIPPER_THROW CLIPPER_THROW_USER -+#endif -+#if defined(CLIPPER_TRY_USER) -+ #undef CLIPPER_TRY -+ #define CLIPPER_TRY CLIPPER_TRY_USER -+#endif -+#if defined(CLIPPER_CATCH_USER) -+ #undef CLIPPER_CATCH -+ #define CLIPPER_CATCH CLIPPER_CATCH_USER -+#endif -+ - namespace ClipperLib { - - static double const pi = 3.141592653589793238; -@@ -898,7 +930,7 @@ void RangeTest(const IntPoint& Pt, bool& useFullRange) - if (useFullRange) - { - if (Pt.X > hiRange || Pt.Y > hiRange || -Pt.X > hiRange || -Pt.Y > hiRange) -- throw clipperException("Coordinate outside allowed range"); -+ CLIPPER_THROW(clipperException("Coordinate outside allowed range")); - } - else if (Pt.X > loRange|| Pt.Y > loRange || -Pt.X > loRange || -Pt.Y > loRange) - { -@@ -1046,10 +1078,10 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) - { - #ifdef use_lines - if (!Closed && PolyTyp == ptClip) -- throw clipperException("AddPath: Open paths must be subject."); -+ CLIPPER_THROW(clipperException("AddPath: Open paths must be subject.")); - #else - if (!Closed) -- throw clipperException("AddPath: Open paths have been disabled."); -+ CLIPPER_THROW(clipperException("AddPath: Open paths have been disabled.")); - #endif - - int highI = (int)pg.size() -1; -@@ -1062,7 +1094,7 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) - - bool IsFlat = true; - //1. Basic (first) edge initialization ... -- try -+ CLIPPER_TRY - { - edges[1].Curr = pg[1]; - RangeTest(pg[0], m_UseFullRange); -@@ -1075,10 +1107,10 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) - InitEdge(&edges[i], &edges[i+1], &edges[i-1], pg[i]); - } - } -- catch(...) -+ CLIPPER_CATCH(...) - { - delete [] edges; -- throw; //range test fails -+ CLIPPER_THROW(); //range test fails - } - TEdge *eStart = &edges[0]; - -@@ -1442,7 +1474,7 @@ void ClipperBase::SwapPositionsInAEL(TEdge *Edge1, TEdge *Edge2) - void ClipperBase::UpdateEdgeIntoAEL(TEdge *&e) - { - if (!e->NextInLML) -- throw clipperException("UpdateEdgeIntoAEL: invalid call"); -+ CLIPPER_THROW(clipperException("UpdateEdgeIntoAEL: invalid call")); - - e->NextInLML->OutIdx = e->OutIdx; - TEdge* AelPrev = e->PrevInAEL; -@@ -1510,7 +1542,7 @@ bool Clipper::Execute(ClipType clipType, Paths &solution, - { - if( m_ExecuteLocked ) return false; - if (m_HasOpenPaths) -- throw clipperException("Error: PolyTree struct is needed for open path clipping."); -+ CLIPPER_THROW(clipperException("Error: PolyTree struct is needed for open path clipping.")); - m_ExecuteLocked = true; - solution.resize(0); - m_SubjFillType = subjFillType; -@@ -1560,7 +1592,7 @@ void Clipper::FixHoleLinkage(OutRec &outrec) - bool Clipper::ExecuteInternal() - { - bool succeeded = true; -- try { -+ CLIPPER_TRY { - Reset(); - m_Maxima = MaximaList(); - m_SortedEdges = 0; -@@ -1583,7 +1615,7 @@ bool Clipper::ExecuteInternal() - InsertLocalMinimaIntoAEL(botY); - } - } -- catch(...) -+ CLIPPER_CATCH(...) - { - succeeded = false; - } -@@ -2827,18 +2859,18 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge) - bool Clipper::ProcessIntersections(const cInt topY) - { - if( !m_ActiveEdges ) return true; -- try { -+ CLIPPER_TRY { - BuildIntersectList(topY); - size_t IlSize = m_IntersectList.size(); - if (IlSize == 0) return true; - if (IlSize == 1 || FixupIntersectionOrder()) ProcessIntersectList(); - else return false; - } -- catch(...) -+ CLIPPER_CATCH(...) - { - m_SortedEdges = 0; - DisposeIntersectNodes(); -- throw clipperException("ProcessIntersections error"); -+ CLIPPER_THROW(clipperException("ProcessIntersections error")); - } - m_SortedEdges = 0; - return true; -@@ -3002,7 +3034,7 @@ void Clipper::DoMaxima(TEdge *e) - DeleteFromAEL(eMaxPair); - } - #endif -- else throw clipperException("DoMaxima error"); -+ else CLIPPER_THROW(clipperException("DoMaxima error")); - } - //------------------------------------------------------------------------------ - |