summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-10-19 21:15:25 (GMT)
committerMarius Kintel <marius@kintel.net>2013-10-19 21:15:25 (GMT)
commitd2a729bdfa91e2463cfb03e3177147f043ae0dc9 (patch)
treea18fa34e5795884fd5e75e1a40e3dcd612a999a4
parent257d1f711525414038242f40796abf57e5ef9c0e (diff)
Ignore malformed polygons
-rw-r--r--src/primitives.cc6
-rw-r--r--tests/regression/csgtermtest/allmodules-expected.term2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/primitives.cc b/src/primitives.cc
index 89c1573..13a6794 100644
--- a/src/primitives.cc
+++ b/src/primitives.cc
@@ -513,8 +513,12 @@ sphere_next_r2:
if (this->paths.toVector().size() == 0)
{
+ if (dd.points.size() <= 2) { // Ignore malformed polygons
+ delete p;
+ return NULL;
+ }
dd.paths.push_back(DxfData::Path());
- for (size_t i=0; i<this->points.toVector().size(); i++) {
+ for (size_t i=0; i<dd.points.size(); i++) {
assert(i < dd.points.size()); // FIXME: Not needed, but this used to be an 'if'
dd.paths.back().indices.push_back(i);
}
diff --git a/tests/regression/csgtermtest/allmodules-expected.term b/tests/regression/csgtermtest/allmodules-expected.term
index b802c81..8b2f75f 100644
--- a/tests/regression/csgtermtest/allmodules-expected.term
+++ b/tests/regression/csgtermtest/allmodules-expected.term
@@ -1 +1 @@
-(((((((sphere12 + cube25) + sphere26) + cylinder27) + polyhedron28) + square29) + circle30) + polygon31)
+((((((sphere12 + cube25) + sphere26) + cylinder27) + polyhedron28) + square29) + circle30)
contact: Jan Huwald // Impressum