diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index a5bf29fcb4..4bf320df73 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -2908,10 +2908,11 @@ void PerimeterGenerator::process_arachne() }); for (ArachneSurfaceResult &result : results) { if (result.has_loops) - this->loops->append(result.loops); + // Moved, not copied: append(const ExtrusionEntity &) clones the whole wall tree of the island. + this->loops->append(std::move(result.loops)); this->fill_surfaces->append(result.infill, stInternal); apply_extra_perimeters(result.infill); - this->fill_no_overlap->insert(this->fill_no_overlap->end(), result.no_overlap.begin(), result.no_overlap.end()); + append(*this->fill_no_overlap, std::move(result.no_overlap)); } }