From 2509587b5aebc887fb5aee92f2fb7cada66d5729 Mon Sep 17 00:00:00 2001 From: Roxy-3D Date: Sat, 29 Apr 2017 22:01:29 -0500 Subject: [PATCH] Correct over optimization of pre-initialized variables (#6500) * Correct over optimization of pre-initialized variables NEAR_ZERO() works most of the time... But it leaves corner cases uncovered. We need to explicitly check if these variables are +/- infinity. * Correct over optimization of pre-initialized variables --- Marlin/ubl_motion.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Marlin/ubl_motion.cpp b/Marlin/ubl_motion.cpp index 7325a5cf2c..3bc74585a1 100755 --- a/Marlin/ubl_motion.cpp +++ b/Marlin/ubl_motion.cpp @@ -250,8 +250,10 @@ const float m = dy / dx, c = start[Y_AXIS] - m * start[X_AXIS]; - const bool inf_normalized_flag = NEAR_ZERO(on_axis_distance), - inf_m_flag = NEAR_ZERO(dx); + bool inf_normalized_flag, inf_m_flag; + + inf_normalized_flag = isinf(e_normalized_dist); + inf_m_flag = isinf(m); /** * This block handles vertical lines. These are lines that stay within the same @@ -265,7 +267,7 @@ const float next_mesh_line_y = LOGICAL_Y_POSITION(pgm_read_float(&(ubl.mesh_index_to_ypos[current_yi]))); /** - * inf_m_flag? the slope of the line is infinite, we won't do the calculations + * if the slope of the line is infinite, we won't do the calculations * else, we know the next X is the same so we can recover and continue! * Calculate X at the next Y mesh line */