Fixed potential double-free in mouse cleanup code
diff --git a/src/video/cocoa/SDL_cocoamouse.m b/src/video/cocoa/SDL_cocoamouse.m
index b774626..c257be0 100644
--- a/src/video/cocoa/SDL_cocoamouse.m
+++ b/src/video/cocoa/SDL_cocoamouse.m
@@ -348,10 +348,9 @@
 
     Cocoa_InitMouseEventTap(mouse->driverdata);
 
-    SDL_MouseData *driverdata = (SDL_MouseData*)mouse->driverdata;
     const NSPoint location =  [NSEvent mouseLocation];
-    driverdata->lastMoveX = location.x;
-    driverdata->lastMoveY = location.y;
+    mouse->driverdata->lastMoveX = location.x;
+    mouse->driverdata->lastMoveY = location.y;
 }
 
 void
@@ -482,9 +481,10 @@
     if (mouse) {
         if (mouse->driverdata) {
             Cocoa_QuitMouseEventTap(((SDL_MouseData*)mouse->driverdata));
-        }
 
-        SDL_free(mouse->driverdata);
+            SDL_free(mouse->driverdata);
+            mouse->driverdata = NULL;
+        }
     }
 }