author David Ludwig <>
Tue, 17 Mar 2020 17:34:24 -0400
changeset 13646 784ce9766fb9
parent 10892 996c14d41c46
permissions -rw-r--r--
Fix for Bug 5034 - Replugging in a controller crashes on macOS in SDL 2.0.12

This is a multi-part fix, and is the 2nd attempt at a fix for Bug 5034. Here
are the problems being addressed:

1. On macOS 10.14.x and earlier, trying to call IOHIDDeviceUnscheduleFromRunLoop
without a prior, paired call to IOHIDDeviceScheduleWithRunLoop, appears to
lead to a crash. A per-device flag has been added to make sure that these
calls are paired.
2. DARWIN_JoystickDetect was free'ing its SDL_joystick's hwdata field
(via FreeDevice) without setting it to NULL, and DARWIN_JoystickRumble wasn't
checking for a NULL hwdata. FreeDevice will now set hwdata to NULL and
DARWIN_JoystickRumble will check for a NULL hwdata.
     2 Please distribute this file with the SDL runtime environment:
     4 The Simple DirectMedia Layer (SDL for short) is a cross-platform library
     5 designed to make it easy to write multi-media software, such as games
     6 and emulators.
     8 The Simple DirectMedia Layer library source code is available from:
    11 This library is distributed under the terms of the zlib license: