From 72a2eaf82e672e55dfdf521b55f5ca60f82d65ea Mon Sep 17 00:00:00 2001 From: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> Date: Tue, 3 Feb 2026 12:46:31 -0300 Subject: [PATCH] Small memory optimization for some infills (#12063) --- src/libslic3r/Fill/Fill3DHoneycomb.cpp | 2 +- src/libslic3r/Fill/FillCrossHatch.cpp | 2 +- src/libslic3r/Fill/FillGyroid.cpp | 2 +- src/libslic3r/Fill/FillLine.cpp | 2 +- src/libslic3r/Fill/FillTpmsD.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/Fill/Fill3DHoneycomb.cpp b/src/libslic3r/Fill/Fill3DHoneycomb.cpp index 6429a81073..5908f854de 100644 --- a/src/libslic3r/Fill/Fill3DHoneycomb.cpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.cpp @@ -277,7 +277,7 @@ void Fill3DHoneycomb::_fill_surface_single( multiline_fill(polylines, params, spacing); // clip pattern to boundaries, chain the clipped polylines - polylines = intersection_pl(polylines, to_polygons(expolygon)); + polylines = intersection_pl(std::move(polylines), to_polygons(expolygon)); if (! polylines.empty()) { // Remove very small bits, but be careful to not remove infill lines connecting thin walls! diff --git a/src/libslic3r/Fill/FillCrossHatch.cpp b/src/libslic3r/Fill/FillCrossHatch.cpp index 359c4252c4..571095eca4 100644 --- a/src/libslic3r/Fill/FillCrossHatch.cpp +++ b/src/libslic3r/Fill/FillCrossHatch.cpp @@ -208,7 +208,7 @@ void FillCrossHatch ::_fill_surface_single( // Apply multiline offset if needed multiline_fill(polylines, params, spacing); - polylines = intersection_pl(polylines, to_polygons(expolygon)); + polylines = intersection_pl(std::move(polylines), to_polygons(expolygon)); // --- remove small remains from gyroid infill if (!polylines.empty()) { diff --git a/src/libslic3r/Fill/FillGyroid.cpp b/src/libslic3r/Fill/FillGyroid.cpp index caa8459bec..8700c1746e 100644 --- a/src/libslic3r/Fill/FillGyroid.cpp +++ b/src/libslic3r/Fill/FillGyroid.cpp @@ -187,7 +187,7 @@ void FillGyroid::_fill_surface_single( // Apply multiline offset if needed multiline_fill(polylines, params, spacing); - polylines = intersection_pl(polylines, expolygon); + polylines = intersection_pl(std::move(polylines), expolygon); if (! polylines.empty()) { // Remove very small bits, but be careful to not remove infill lines connecting thin walls! diff --git a/src/libslic3r/Fill/FillLine.cpp b/src/libslic3r/Fill/FillLine.cpp index bf97fe006b..5d548e5dbb 100644 --- a/src/libslic3r/Fill/FillLine.cpp +++ b/src/libslic3r/Fill/FillLine.cpp @@ -58,7 +58,7 @@ void FillLine::_fill_surface_single( pts.push_back(it->a); pts.push_back(it->b); } - Polylines polylines = intersection_pl(polylines_src, offset(expolygon, scale_(0.02))); + Polylines polylines = intersection_pl(std::move(polylines_src), offset(expolygon, scale_(0.02))); // FIXME Vojtech: This is only performed for horizontal lines, not for the vertical lines! const float INFILL_OVERLAP_OVER_SPACING = 0.3f; diff --git a/src/libslic3r/Fill/FillTpmsD.cpp b/src/libslic3r/Fill/FillTpmsD.cpp index 4750fc55fc..06e0302e8d 100644 --- a/src/libslic3r/Fill/FillTpmsD.cpp +++ b/src/libslic3r/Fill/FillTpmsD.cpp @@ -133,7 +133,7 @@ void FillTpmsD::_fill_surface_single( // Apply multiline offset if needed multiline_fill(polylines, params, spacing); - polylines = intersection_pl(polylines, expolygon); + polylines = intersection_pl(std::move(polylines), expolygon); if (! polylines.empty()) { // Remove very small bits, but be careful to not remove infill lines connecting thin walls!