From db1b0ea9ac6b7fb84f4556b17af89a81fe991795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sun, 4 Sep 2022 12:59:59 +0000 Subject: [PATCH] Optimisation: Set lastpos using memcpy directly Verified the change by running the M600 gcode. All axis move as expected. Change in memory: Flash: -64 bytes SRAM: 0 bytes --- Firmware/Marlin_main.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4769389ec..053a24100 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3536,10 +3536,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float float HotendTempBckp = degTargetHotend(active_extruder); int fanSpeedBckp = fanSpeed; - lastpos[X_AXIS] = current_position[X_AXIS]; - lastpos[Y_AXIS] = current_position[Y_AXIS]; - lastpos[Z_AXIS] = current_position[Z_AXIS]; - lastpos[E_AXIS] = current_position[E_AXIS]; + memcpy(lastpos, current_position, sizeof(lastpos)); // Retract E current_position[E_AXIS] += e_shift;