summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormeta <s@w23.at>2011-01-22 01:22:17 (GMT)
committermeta <s@w23.at>2011-01-22 01:22:17 (GMT)
commit18a303ac5b335792591a0c007d74f21dc457363a (patch)
tree9521ae2fda482b8869bc7641307bd64aba5aaacd /src
parent46f8a1508c4de736b0d90bbeff58cfe3c4ef8913 (diff)
change C99 vla to heap allocated array
Diffstat (limited to 'src')
-rw-r--r--src/dxfrotextrude.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/dxfrotextrude.cc b/src/dxfrotextrude.cc
index a7a6cf1..1be2265 100644
--- a/src/dxfrotextrude.cc
+++ b/src/dxfrotextrude.cc
@@ -159,7 +159,13 @@ PolySet *DxfRotateExtrudeNode::render_polyset(render_mode_e) const
int fragments = get_fragments_from_r(max_x, fn, fs, fa);
- double points[fragments][dxf->paths[i].points.count()][3];
+ double ***points;
+ points = new double**[fragments];
+ for (int j=0; j < fragments; j++) {
+ points[j] = new double*[dxf->paths[i].points.count()];
+ for (int k=0; k < dxf->paths[i].points.count(); k++)
+ points[j][k] = new double[3];
+ }
for (int j = 0; j < fragments; j++) {
double a = (j*2*M_PI) / fragments;
@@ -203,6 +209,13 @@ PolySet *DxfRotateExtrudeNode::render_polyset(render_mode_e) const
}
}
}
+
+ for (int j=0; j < fragments; j++) {
+ for (int k=0; k < dxf->paths[i].points.count(); k++)
+ delete[] points[j][k];
+ delete[] points[j];
+ }
+ delete[] points;
}
PolySet::ps_cache.insert(key, new PolySet::ps_cache_entry(ps->link()));
contact: Jan Huwald // Impressum