author David Ludwig <>
Tue, 17 Mar 2020 17:34:24 -0400
changeset 13646 784ce9766fb9
parent 7876 d6373384b5ce
child 13729 89a457159af4
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.
     1 # sdl pkg-config source file
     3 prefix=@prefix@
     4 exec_prefix=@exec_prefix@
     5 libdir=@libdir@
     6 includedir=@includedir@
     8 Name: sdl2
     9 Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.
    10 Version: @SDL_VERSION@
    11 Requires:
    12 Conflicts:
    13 Libs: -L${libdir} @SDL_RLD_FLAGS@ @SDL_LIBS@
    14 Libs.private: @SDL_STATIC_LIBS@
    15 Cflags: -I${includedir}/SDL2 @SDL_CFLAGS@