mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
FIX: Add overflow protection and clean up filament picker internals
- Add safeguards for invalid idx when opening color picker - Prevent crash when filament color data is missing or uninitialized - Simplify private member variable naming in filament picker dialog jira: STUDIO-12956 Change-Id: I455565bdac769f497f22f884e19cd0cbb04fb8c3 (cherry picked from commit 705ad911ee81395b2162ae67a8f64e237f6a3c5d)
This commit is contained in:
@@ -1402,6 +1402,16 @@ FilamentColor PlaterPresetComboBox::get_cur_color_info()
|
||||
{
|
||||
std::vector<std::string> filaments_multi_color = Slic3r::GUI::wxGetApp().plater()->get_filament_colors_render_info();
|
||||
std::vector<std::string> filament_color_type = Slic3r::GUI::wxGetApp().plater()->get_filament_color_render_type();
|
||||
|
||||
if (m_filament_idx < 0 || m_filament_idx >= static_cast<int>(filaments_multi_color.size())) {
|
||||
BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(": m_filament_idx %1% out of range %2%") % m_filament_idx % filaments_multi_color.size();
|
||||
return FilamentColor();
|
||||
}
|
||||
|
||||
if (m_filament_idx >= static_cast<int>(filament_color_type.size())) {
|
||||
BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(": m_filament_idx %1% out of range for color_type %2%") % m_filament_idx % filament_color_type.size();
|
||||
return FilamentColor();
|
||||
}
|
||||
std::string filament_color_info = filaments_multi_color[m_filament_idx];
|
||||
std::vector<std::string> colors;
|
||||
colors = Slic3r::split_string(filament_color_info, ' ');
|
||||
|
||||
Reference in New Issue
Block a user