From b2b9444b6e03d62d97d905dba27189fb9bd6df43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Thu, 15 Sep 2022 08:59:11 +0200 Subject: [PATCH] Fix of #8827: Parsing error in the pressure equalizer when tag TIMELAPSE_TAKE_FRAME was inside G-code. --- src/libslic3r/GCode/PressureEqualizer.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/PressureEqualizer.cpp b/src/libslic3r/GCode/PressureEqualizer.cpp index c8a9618efe..399ab42726 100644 --- a/src/libslic3r/GCode/PressureEqualizer.cpp +++ b/src/libslic3r/GCode/PressureEqualizer.cpp @@ -367,7 +367,16 @@ bool PressureEqualizer::process_line(const char *line, const char *line_end, GCo case 'T': { // Activate an extruder head. - int new_extruder = parse_int(line); + int new_extruder = -1; + try { + new_extruder = parse_int(line); + } catch (Slic3r::InvalidArgument &) { + // Ignore invalid GCodes starting with T. + eatws(line); + break; + } + assert(new_extruder != -1); + if (new_extruder != int(m_current_extruder)) { m_current_extruder = new_extruder; m_retracted = true;