mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-05 06:41:10 +00:00
_generate_current_object_list expands component references through a work list with no bound. An object whose component points back at itself, or a pair that point at each other, makes the list grow until the process runs out of memory: a few hundred bytes of XML take the slicer past 20 GB of resident size. Bound the expansion by the number of objects in the file. A reference chain longer than that has to revisit an object, so this rejects every cycle and no acyclic file, however deeply nested. A second bound on the number of expanded components stops an acyclic graph that fans out exponentially.