diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 4fec834171..e99c458b2c 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -2916,10 +2916,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)); } }