From 062f471d8d4a2fc9c04cc029eed531d34471b8fa Mon Sep 17 00:00:00 2001 From: Raoul Rubien Date: Sat, 13 Sep 2025 01:04:34 +0200 Subject: [PATCH 1/5] fixes: virtual void Slic3r::GUI::OTG_Settings::UpdateAndShow(bool) was hidden [-Woverloaded-virtual=] --- src/slic3r/GUI/GUI_ObjectTableSettings.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.hpp b/src/slic3r/GUI/GUI_ObjectTableSettings.hpp index 534426f554..97bd9013e2 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.hpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.hpp @@ -71,6 +71,7 @@ public: //return visible count int update_extra_column_visible_status(ConfigOptionsGroup* option_group, const std::vector& option_keys, ModelConfig* config); void update_config_values(bool is_object, ModelObject* object, ModelConfig* config, const std::string& category); + using OTG_Settings::UpdateAndShow; void UpdateAndShow(int row, const bool show, bool is_object, bool is_multiple_selection, ModelObject* object, ModelConfig* config, const std::string& category); void ValueChanged(int row, bool is_object, ModelObject* object, ModelConfig* config, const std::string& category, const std::string& key); void resetAllValues(int row, bool is_object, ModelObject* object, ModelConfig* config, const std::string& category); From ce4d3118cfc8d2e69b9f1e66a8c42781384b9faa Mon Sep 17 00:00:00 2001 From: Raoul Rubien Date: Sat, 13 Sep 2025 01:49:42 +0200 Subject: [PATCH 2/5] fixes: is used uninitialized [-Wuninitialized] --- src/libslic3r/AABBMesh.cpp | 2 +- src/libslic3r/AABBTreeIndirect.hpp | 4 ++-- src/libslic3r/SLA/IndexedMesh.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/AABBMesh.cpp b/src/libslic3r/AABBMesh.cpp index 3159667f09..9415d6cd5f 100644 --- a/src/libslic3r/AABBMesh.cpp +++ b/src/libslic3r/AABBMesh.cpp @@ -55,7 +55,7 @@ public: Eigen::Matrix &closest) { size_t idx_unsigned = 0; - Vec3d closest_vec3d(closest); + Vec3d closest_vec3d; double dist = AABBTreeIndirect::squared_distance_to_indexed_triangle_set( its.vertices, its.indices, m_tree, point, idx_unsigned, diff --git a/src/libslic3r/AABBTreeIndirect.hpp b/src/libslic3r/AABBTreeIndirect.hpp index 94c2425380..989978f3b5 100644 --- a/src/libslic3r/AABBTreeIndirect.hpp +++ b/src/libslic3r/AABBTreeIndirect.hpp @@ -593,7 +593,7 @@ namespace detail { const auto &look_left = [&]() { size_t i_left; - Vector c_left = c; + Vector c_left; Scalar sqr_d_left = squared_distance_to_indexed_primitives_recursive(distancer, left_node_idx, low_sqr_d, up_sqr_d, i_left, c_left); set_min(sqr_d_left, i_left, c_left); looked_left = true; @@ -601,7 +601,7 @@ namespace detail { const auto &look_right = [&]() { size_t i_right; - Vector c_right = c; + Vector c_right; Scalar sqr_d_right = squared_distance_to_indexed_primitives_recursive(distancer, right_node_idx, low_sqr_d, up_sqr_d, i_right, c_right); set_min(sqr_d_right, i_right, c_right); looked_right = true; diff --git a/src/libslic3r/SLA/IndexedMesh.cpp b/src/libslic3r/SLA/IndexedMesh.cpp index 60255195bb..ea1e4aab17 100644 --- a/src/libslic3r/SLA/IndexedMesh.cpp +++ b/src/libslic3r/SLA/IndexedMesh.cpp @@ -57,7 +57,7 @@ public: Eigen::Matrix &closest) { size_t idx_unsigned = 0; - Vec3d closest_vec3d(closest); + Vec3d closest_vec3d; double dist = AABBTreeIndirect::squared_distance_to_indexed_triangle_set( its.vertices, its.indices, m_tree, point, idx_unsigned, From 10c789f952f3fd4c05fff3f86068c80b39ec40ae Mon Sep 17 00:00:00 2001 From: Raoul Rubien Date: Sat, 13 Sep 2025 02:09:52 +0200 Subject: [PATCH 3/5] fixes: writing between 5 and 9223372036854775804 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=] --- src/libslic3r/libslic3r.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index f4291d36df..bd8446c672 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -140,13 +140,12 @@ enum Axis { NUM_AXES_WITH_UNKNOWN, }; -template -inline void append(std::vector &dest, const std::vector &src) +template +inline void append(std::vector &dest, const std::vector &src) { if (dest.empty()) - dest = src; - else - dest.insert(dest.end(), src.begin(), src.end()); + dest.reserve(src.size()); + dest.insert(dest.end(), src.begin(), src.end()); } template From 3930049b9d7f211a07e1e0d8a0dd37c0c0b7b925 Mon Sep 17 00:00:00 2001 From: Raoul Rubien Date: Sat, 13 Sep 2025 03:10:36 +0200 Subject: [PATCH 4/5] fixes: output truncated before terminating nul copying 4 bytes from a string of the same length [-Wstringop-truncation] --- src/libslic3r/GCodeWriter.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/GCodeWriter.hpp b/src/libslic3r/GCodeWriter.hpp index 32e737164d..997ddbfc98 100644 --- a/src/libslic3r/GCodeWriter.hpp +++ b/src/libslic3r/GCodeWriter.hpp @@ -257,7 +257,7 @@ public: } void emit_string(const std::string &s) { - strncpy(ptr_err.ptr, s.c_str(), s.size()); + memcpy(ptr_err.ptr, s.c_str(), s.size()); ptr_err.ptr += s.size(); } From fbc641e6393fc659f887cc7f4b4e9005e7c7ae40 Mon Sep 17 00:00:00 2001 From: Raoul Rubien Date: Sat, 13 Sep 2025 03:30:25 +0200 Subject: [PATCH 5/5] fixes: moving a temporary object prevents copy elision [-Wpessimizing-move] --- src/libslic3r/Support/TreeSupport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index 50272009cd..af27c09293 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -2511,7 +2511,7 @@ void TreeSupport::drop_nodes() m_object->print()->set_status(60 + int(10 * (1 - float(layer_nr) / contact_nodes.size())), _u8L("Generating support"));// (boost::format(_u8L("Support: propagate branches at layer %d")) % layer_nr).str()); - Polygons layer_contours = std::move(m_ts_data->get_contours_with_holes(obj_layer_nr)); + Polygons layer_contours { m_ts_data->get_contours_with_holes(obj_layer_nr) }; //std::unordered_map& mst_line_x_layer_contour_cache = m_mst_line_x_layer_contour_caches[layer_nr]; tbb::concurrent_unordered_map mst_line_x_layer_contour_cache; auto is_line_cut_by_contour = [&mst_line_x_layer_contour_cache,&layer_contours](Point a, Point b)