diff options
author | meta <s@w23.at> | 2011-01-22 01:22:17 (GMT) |
---|---|---|
committer | meta <s@w23.at> | 2011-01-22 01:22:17 (GMT) |
commit | 18a303ac5b335792591a0c007d74f21dc457363a (patch) | |
tree | 9521ae2fda482b8869bc7641307bd64aba5aaacd | |
parent | 46f8a1508c4de736b0d90bbeff58cfe3c4ef8913 (diff) |
change C99 vla to heap allocated array
-rw-r--r-- | src/dxfrotextrude.cc | 15 |
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())); |