From f1952b95910eab65a8556580d0068f0e00f1bf28 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 4 Oct 2023 11:30:41 +0200 Subject: [PATCH] Fix of SPE-1933 Fixing crash with pressure equalizer enabled. This crash was introduced with ArcWelder integration. --- src/libslic3r/GCode.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 3a8b8842fa..a9a7ee2a93 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1463,13 +1463,13 @@ void GCodeGenerator::process_layers( const auto smooth_path_interpolator = tbb::make_filter>(slic3r_tbb_filtermode::serial_in_order, [this, &print, &layers_to_print, &layer_to_print_idx, &interpolation_params](tbb::flow_control &fc) -> std::pair { if (layer_to_print_idx >= layers_to_print.size()) { - if ((!m_pressure_equalizer && layer_to_print_idx == layers_to_print.size()) || (m_pressure_equalizer && layer_to_print_idx == (layers_to_print.size() + 1))) { + if (layer_to_print_idx == layers_to_print.size() + (m_pressure_equalizer ? 1 : 0)) { fc.stop(); return {}; } else { // Pressure equalizer need insert empty input. Because it returns one layer back. // Insert NOP (no operation) layer; - return { ++ layer_to_print_idx, {} }; + return { layer_to_print_idx ++, {} }; } } else { print.throw_if_canceled(); @@ -1561,13 +1561,13 @@ void GCodeGenerator::process_layers( const auto smooth_path_interpolator = tbb::make_filter> (slic3r_tbb_filtermode::serial_in_order, [this, &print, &layers_to_print, &layer_to_print_idx, interpolation_params](tbb::flow_control &fc) -> std::pair { if (layer_to_print_idx >= layers_to_print.size()) { - if ((!m_pressure_equalizer && layer_to_print_idx == layers_to_print.size()) || (m_pressure_equalizer && layer_to_print_idx == (layers_to_print.size() + 1))) { + if (layer_to_print_idx == layers_to_print.size() + (m_pressure_equalizer ? 1 : 0)) { fc.stop(); return {}; } else { // Pressure equalizer need insert empty input. Because it returns one layer back. // Insert NOP (no operation) layer; - return { ++ layer_to_print_idx, {} }; + return { layer_to_print_idx ++, {} }; } } else { print.throw_if_canceled();