From 03bf0eae77a419170128fd9975b171757f345b07 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 12 Jan 2023 00:28:21 -0500 Subject: [PATCH] re-enable ref cleaning with changes --- src/geo/slicer.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/geo/slicer.js b/src/geo/slicer.js index ac509546..fa099c2c 100644 --- a/src/geo/slicer.js +++ b/src/geo/slicer.js @@ -405,20 +405,27 @@ async function sliceZ(z, points, options = {}) { } // free objects to be re-claimed and reduce memory pressure - if (false) { + if (true) { delete rval.groups delete rval.lines - delete rval.clip.m_AllPolys + if (rval.tops) for (let top of rval.tops) { - top.poly.freeParentRefs(); - top.simple.freeParentRefs(); - for (let shell of top.shells) shell.freeParentRefs(); - for (let fillo of top.fill_off) fillo.freeParentRefs(); - for (let last of top.last) last.freeParentRefs(); + if (top.poly) { + top.poly.freeParentRefs(); + top.simple.freeParentRefs(); + for (let shell of top.shells) shell.freeParentRefs(); + for (let fillo of top.fill_off) fillo.freeParentRefs(); + for (let last of top.last) last.freeParentRefs(); + } else { + top.freeParentRefs(); + } } - for (let clip of rval.clip) clip.freeParentRefs(); + if (rval.clip) { + for (let clip of rval.clip) clip.freeParentRefs(); + if (rval.clip.m_AllPolys) delete rval.clip.m_AllPolys + } } if (each) each(rval);