summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/2geom/exception.h1
-rw-r--r--src/2geom/sbasis-to-bezier.cpp5
2 files changed, 5 insertions, 1 deletions
diff --git a/src/2geom/exception.h b/src/2geom/exception.h
index 0791c8547..920cd5808 100644
--- a/src/2geom/exception.h
+++ b/src/2geom/exception.h
@@ -53,6 +53,7 @@ public:
protected:
std::string msgstr;
};
+#define throwException(message) throw(Geom::Exception(message, __FILE__, __LINE__))
//-----------------------------------------------------------------------
// Two main exception classes: LogicalError and RangeError.
diff --git a/src/2geom/sbasis-to-bezier.cpp b/src/2geom/sbasis-to-bezier.cpp
index 415b30d89..497091d1c 100644
--- a/src/2geom/sbasis-to-bezier.cpp
+++ b/src/2geom/sbasis-to-bezier.cpp
@@ -13,6 +13,7 @@ This is wrong, it should read
#include "choose.h"
#include "svg-path.h"
#include <iostream>
+#include "exception.h"
namespace Geom{
@@ -179,7 +180,9 @@ subpath_from_sbasis_incremental(Geom::OldPathSetBuilder &pb, D2<SBasis> B, doubl
#endif
void build_from_sbasis(Geom::PathBuilder &pb, D2<SBasis> const &B, double tol) {
- assert(B.isFinite());
+ if (!B.isFinite()) {
+ throwException("assertion failed: B.isFinite()");
+ }
if(tail_error(B, 2) < tol || sbasis_size(B) == 2) { // nearly cubic enough
if(sbasis_size(B) <= 1) {
pb.lineTo(B.at1());