From 65b23ac45ea7ecd34ec7fff79d9102068d956b26 Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Wed, 18 May 2022 14:36:11 -0700 Subject: [PATCH] [wpilibc] Fix return value of DriverStation::GetJoystickAxisType() (#4230) It was returning a pointer to the axis type array cast to a bool (always 1) instead of returning the desired axis type. --- wpilibc/src/main/native/cpp/DriverStation.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wpilibc/src/main/native/cpp/DriverStation.cpp b/wpilibc/src/main/native/cpp/DriverStation.cpp index 55bfc510aa..2b06ecf4f3 100644 --- a/wpilibc/src/main/native/cpp/DriverStation.cpp +++ b/wpilibc/src/main/native/cpp/DriverStation.cpp @@ -456,11 +456,15 @@ int DriverStation::GetJoystickAxisType(int stick, int axis) { FRC_ReportError(warn::BadJoystickIndex, "stick {} out of range", stick); return -1; } + if (axis < 0 || axis >= HAL_kMaxJoystickAxes) { + FRC_ReportError(warn::BadJoystickAxis, "axis {} out of range", axis); + return -1; + } HAL_JoystickDescriptor descriptor; HAL_GetJoystickDescriptor(stick, &descriptor); - return static_cast(descriptor.axisTypes); + return descriptor.axisTypes[axis]; } bool DriverStation::IsJoystickConnected(int stick) {