From c38eb761c6ec5bf8013ba9f4b02ccb09985b4181 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Mon, 17 Mar 2025 10:27:01 +0800 Subject: [PATCH] FIX: crash when tool_change is empty jira: none Change-Id: Ia2d6fda6847e41054700e37a25179ae2a8d5cd46 --- src/libslic3r/GCode/WipeTower.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index 2877855cf..48a31495a 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -3963,9 +3963,10 @@ void WipeTower::generate_new(std::vectorblock_id == block.block_id && finish_layer_filament == -1) { - finish_layer_filament = layer.tool_changes.front().old_tool; + if (!layer.tool_changes.empty()) { + WipeTowerBlock * last_layer_finish_block = get_block_by_category(get_filament_category(layer.tool_changes.front().old_tool), false); + if (last_layer_finish_block && last_layer_finish_block->block_id == block.block_id && finish_layer_filament == -1) + finish_layer_filament = layer.tool_changes.front().old_tool; } if (finish_layer_filament == -1) {