From 3011ebe547c4743292fbdd67ec36dd3912d8b223 Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Sun, 26 Apr 2020 08:03:17 -0700 Subject: [PATCH] [wpilibc] Fix uninitialized variable in Trajectory class (#2495) Valgrind caught this one. If you default initialize a Trajectory, it doesn't initialize m_totalTime. This means a subsequent call to Trajectory::TotalTime() returns the value of an uninitialized variable. 3512's software was using 0_s as a sentinel value for when a trajectory was empty. We didn't notice a problem before because Linux zero-inits memory. --- wpilibc/src/main/native/include/frc/trajectory/Trajectory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wpilibc/src/main/native/include/frc/trajectory/Trajectory.h b/wpilibc/src/main/native/include/frc/trajectory/Trajectory.h index cc1149b9ae..6ecba9bb38 100644 --- a/wpilibc/src/main/native/include/frc/trajectory/Trajectory.h +++ b/wpilibc/src/main/native/include/frc/trajectory/Trajectory.h @@ -129,7 +129,7 @@ class Trajectory { private: std::vector m_states; - units::second_t m_totalTime; + units::second_t m_totalTime = 0_s; /** * Linearly interpolates between two values.