From faebe94c56857dc4febb898a2df996f3979eba02 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Nov 2013 14:05:08 -0800 Subject: [PATCH] Mac: Fix a crash with SDL_MAC_NO_SANDBOX. When we get a kCGEventTapDisabledByTimeout or kCGEventTapDisabledByUserInput, the event tap would perform an invalid memory access. void pointers are so fun. This code only runs if you explicitly build with SDL_MAC_NO_SANDBOX. --- src/video/cocoa/SDL_cocoamousetap.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/video/cocoa/SDL_cocoamousetap.m b/src/video/cocoa/SDL_cocoamousetap.m index 5879d49bfb790..fd79296499a7b 100644 --- a/src/video/cocoa/SDL_cocoamousetap.m +++ b/src/video/cocoa/SDL_cocoamousetap.m @@ -60,7 +60,7 @@ static CGEventRef Cocoa_MouseTapCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) { - SDL_MouseData *driverdata = (SDL_MouseData*)refcon; + SDL_MouseEventTapData *tapdata = (SDL_MouseEventTapData*)refcon; SDL_Mouse *mouse = SDL_GetMouse(); SDL_Window *window = SDL_GetKeyboardFocus(); NSRect windowRect; @@ -71,7 +71,7 @@ case kCGEventTapDisabledByTimeout: case kCGEventTapDisabledByUserInput: { - CGEventTapEnable(((SDL_MouseEventTapData*)(driverdata->tapdata))->tap, true); + CGEventTapEnable(tapdata->tap, true); return NULL; } default: