From bc1c619599cf35310b0053abb339ea557b961646 Mon Sep 17 00:00:00 2001 From: Miku AuahDark Date: Tue, 6 Dec 2022 09:50:01 +0800 Subject: [PATCH] Sensor: Check if getConstant is successful. --- src/modules/event/sdl/Event.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index 4ecb61785..37f1c4640 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -463,8 +463,10 @@ Message *Event::convert(const SDL_Event &e) if (e.sensor.which == id) { // Found sensor - const char *sensorType = "unknown"; - sensor::Sensor::getConstant(sensor::sdl::Sensor::convert(SDL_SensorGetType(sensor)), sensorType); + const char *sensorType; + if (!sensor::Sensor::getConstant(sensor::sdl::Sensor::convert(SDL_SensorGetType(sensor)), sensorType)) + sensorType = "unknown"; + vargs.emplace_back(sensorType, strlen(sensorType)); // Both accelerometer and gyroscope only pass up to 3 values. // https://github.com/libsdl-org/SDL/blob/SDL2/include/SDL_sensor.h#L81-L127 @@ -603,9 +605,10 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const { using Sensor = love::sensor::Sensor; - const char *sensorName = "unknown"; + const char *sensorName; Sensor::SensorType sensorType = love::sensor::sdl::Sensor::convert((SDL_SensorType) e.csensor.sensor); - Sensor::getConstant(sensorType, sensorName); + if (!Sensor::getConstant(sensorType, sensorName)) + sensorName = "unknown"; vargs.emplace_back(joysticktype, stick); vargs.emplace_back(sensorName, strlen(sensorName));