From 5f5a55a0de6d2fc33d6935a3b765c43dbb78f15c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 22 Oct 2016 10:07:18 -0500 Subject: [PATCH] Add a ZERO macro to clear arrays --- Marlin/Marlin_main.cpp | 2 +- Marlin/SdBaseFile.cpp | 2 +- Marlin/cardreader.cpp | 2 +- Marlin/macros.h | 1 + Marlin/mesh_bed_leveling.cpp | 2 +- Marlin/planner.cpp | 6 +++--- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7527eb597..3c37b14a8 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3145,7 +3145,7 @@ inline void gcode_G4() { if (DEBUGGING(LEVELING)) DEBUG_POS(">>> home_delta", current_position); #endif // Init the current position of all carriages to 0,0,0 - memset(current_position, 0, sizeof(current_position)); + ZERO(current_position); sync_plan_position(); // Move all carriages together linearly until an endstop is hit. diff --git a/Marlin/SdBaseFile.cpp b/Marlin/SdBaseFile.cpp index 95765f9c1..412292b9a 100644 --- a/Marlin/SdBaseFile.cpp +++ b/Marlin/SdBaseFile.cpp @@ -674,7 +674,7 @@ bool SdBaseFile::open(SdBaseFile* dirFile, index = 0; } // initialize as empty file - memset(p, 0, sizeof(dir_t)); + ZERO(p); memcpy(p->name, dname, 11); // set timestamps diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index 67dd5371e..5f004d2f7 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -36,7 +36,7 @@ CardReader::CardReader() { sdpos = 0; workDirDepth = 0; file_subcall_ctr = 0; - memset(workDirParents, 0, sizeof(workDirParents)); + ZERO(workDirParents); autostart_stilltocheck = true; //the SD start is delayed, because otherwise the serial cannot answer fast enough to make contact with the host software. autostart_index = 0; diff --git a/Marlin/macros.h b/Marlin/macros.h index 56b5c8bba..f1c991981 100644 --- a/Marlin/macros.h +++ b/Marlin/macros.h @@ -78,6 +78,7 @@ #define NUMERIC(a) ((a) >= '0' && '9' >= (a)) #define NUMERIC_SIGNED(a) (NUMERIC(a) || (a) == '-') #define COUNT(a) (sizeof(a)/sizeof(*a)) +#define ZERO(a) memset(a,0,sizeof(a)) // Macros for initializing arrays #define ARRAY_6(v1, v2, v3, v4, v5, v6, args...) { v1, v2, v3, v4, v5, v6 } diff --git a/Marlin/mesh_bed_leveling.cpp b/Marlin/mesh_bed_leveling.cpp index babad8aaa..fa45198c6 100644 --- a/Marlin/mesh_bed_leveling.cpp +++ b/Marlin/mesh_bed_leveling.cpp @@ -31,7 +31,7 @@ void mesh_bed_leveling::reset() { status = MBL_STATUS_NONE; z_offset = 0; - memset(z_values, 0, sizeof(z_values)); + ZERO(z_values); } #endif // MESH_BED_LEVELING diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index cfc23dfd3..548719556 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -137,8 +137,8 @@ Planner::Planner() { init(); } void Planner::init() { block_buffer_head = block_buffer_tail = 0; - memset(position, 0, sizeof(position)); - memset(previous_speed, 0, sizeof(previous_speed)); + ZERO(position); + ZERO(previous_speed); previous_nominal_speed = 0.0; #if ABL_PLANAR bed_level_matrix.set_to_identity(); @@ -1266,7 +1266,7 @@ void Planner::_set_position_mm(const float &a, const float &b, const float &c, c stepper.set_position(na, nb, nc, ne); previous_nominal_speed = 0.0; // Resets planner junction speeds. Assumes start from rest. - memset(previous_speed, 0, sizeof(previous_speed)); + ZERO(previous_speed); } void Planner::set_position_mm_kinematic(const float position[NUM_AXIS]) {