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 {