瀏覽代碼

Don't trigger an error if we try to delete a touch device after shutting down the touch system

This can happen on Raspberry Pi if the display system fails to initialize.
Sam Lantinga 2 年之前
父節點
當前提交
ea4ea27a59
共有 1 個文件被更改,包括 9 次插入3 次删除
  1. 9 3
      src/events/SDL_touch.c

+ 9 - 3
src/events/SDL_touch.c

@@ -456,10 +456,16 @@ SDL_SendTouchMotion(SDL_TouchID id, SDL_FingerID fingerid, SDL_Window * window,
 void
 SDL_DelTouch(SDL_TouchID id)
 {
-    int i;
-    int index = SDL_GetTouchIndex(id);
-    SDL_Touch *touch = SDL_GetTouch(id);
+    int i, index;
+    SDL_Touch *touch;
 
+    if (SDL_num_touch == 0) {
+        /* We've already cleaned up, we won't find this device */
+        return;
+    }
+
+    index = SDL_GetTouchIndex(id);
+    touch = SDL_GetTouch(id);
     if (!touch) {
         return;
     }