Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Matena <lukasmatena@seznam.cz>2018-10-29 15:29:10 +0300
committerLukas Matena <lukasmatena@seznam.cz>2018-10-29 15:29:10 +0300
commitf2836d47382fbc24a624ace592c9d6b6c5168e27 (patch)
tree7c211ff4e3dfa3281d5a4e6e929a3b542eb102df
parent720fb29768fb702cfb185bfb05a70adb84f3b109 (diff)
Fix of issue 1368 (vector index out of bounds in the wipe tower generator)
-rw-r--r--xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp
index 61d8df035..3ef141829 100644
--- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp
+++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp
@@ -643,7 +643,8 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::tool_change(unsigned int tool, boo
"\n\n");
// Ask our writer about how much material was consumed:
- m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length();
+ if (m_current_tool < m_used_filament_length.size())
+ m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length();
ToolChangeResult result;
result.priming = false;
@@ -1068,8 +1069,9 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::finish_layer()
m_depth_traversed = m_wipe_tower_depth-m_perimeter_width;
- // Ask our writer about how much material was consumed:
- m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length();
+ // Ask our writer about how much material was consumed.
+ if (m_current_tool < m_used_filament_length.size())
+ m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length();
ToolChangeResult result;
result.priming = false;
@@ -1166,7 +1168,6 @@ void WipeTowerPrusaMM::save_on_last_wipe()
}
}
-
// Processes vector m_plan and calls respective functions to generate G-code for the wipe tower
// Resulting ToolChangeResults are appended into vector "result"
void WipeTowerPrusaMM::generate(std::vector<std::vector<WipeTower::ToolChangeResult>> &result)
@@ -1256,6 +1257,4 @@ void WipeTowerPrusaMM::make_wipe_tower_square()
lay.extra_spacing = lay.depth / lay.toolchanges_depth();
}
-
-
}; // namespace Slic3r