summaryrefslogtreecommitdiff
path: root/Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m
diff options
context:
space:
mode:
Diffstat (limited to 'Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m')
-rw-r--r--Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m9
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m b/Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m
index 3c4fcf2..aa4f152 100644
--- a/Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m
+++ b/Source/3rdParty/SDL2/src/video/cocoa/SDL_cocoamousetap.m
@@ -211,7 +211,7 @@ Cocoa_InitMouseEventTap(SDL_MouseData* driverdata)
tapdata->thread = SDL_CreateThreadInternal(&Cocoa_MouseTapThread, "Event Tap Loop", 512 * 1024, tapdata);
if (tapdata->thread) {
/* Success - early out. Ownership transferred to thread. */
- return;
+ return;
}
CFRelease(tapdata->tap);
}
@@ -237,6 +237,13 @@ Cocoa_QuitMouseEventTap(SDL_MouseData *driverdata)
SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)driverdata->tapdata;
int status;
+ if (tapdata == NULL) {
+ /* event tap was already cleaned up (possibly due to CGEventTapCreate
+ * returning null.)
+ */
+ return;
+ }
+
/* Ensure that the runloop has been started first.
* TODO: Move this to InitMouseEventTap, check for error conditions that can
* happen in Cocoa_MouseTapThread, and fall back to the non-EventTap way of