From 229946a25c7da5b1810faf280c10a842eb1aa596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 5 Jan 2024 16:28:04 +0100 Subject: [PATCH] Reorganize getArea() in TreeModelVolumes to silence the warning ( may be used uninitialized in this function). This warning was shown because the previous code was triggering a bug in GCC. More about the bug can be found here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86465. --- src/libslic3r/Support/TreeModelVolumes.hpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Support/TreeModelVolumes.hpp b/src/libslic3r/Support/TreeModelVolumes.hpp index 57ca9fae7a..eeabccd55e 100644 --- a/src/libslic3r/Support/TreeModelVolumes.hpp +++ b/src/libslic3r/Support/TreeModelVolumes.hpp @@ -244,12 +244,16 @@ private: */ std::optional> getArea(const TreeModelVolumes::RadiusLayerPair &key) const { std::lock_guard guard(m_mutex); + if (key.second >= LayerIndex(m_data.size())) - return std::optional>{}; - const auto &layer = m_data[key.second]; + return std::nullopt; + + const LayerData &layer = m_data[key.second]; auto it = layer.find(key.first); - return it == layer.end() ? - std::optional>{} : std::optional>{ it->second }; + if (it == layer.end()) + return std::nullopt; + + return std::optional>{it->second}; } // Get a collision area at a given layer for a radius that is a lower or equial to the key radius. std::optional>> get_lower_bound_area(const TreeModelVolumes::RadiusLayerPair &key) const {