فهرست منبع

Handle new SDL_rwops error codes in SDL_LoadFile_RW()

Thanks @BeWorld2018!
Sam Lantinga 2 سال پیش
والد
کامیت
1bf1c866fe
1فایلهای تغییر یافته به همراه13 افزوده شده و 1 حذف شده
  1. 13 1
      src/file/SDL_rwops.c

+ 13 - 1
src/file/SDL_rwops.c

@@ -703,10 +703,22 @@ SDL_LoadFile_RW(SDL_RWops *src, size_t *datasize, int freesrc)
         }
 
         size_read = SDL_RWread(src, (char *)data + size_total, size - size_total);
+        if (size_read > 0) {
+            size_total += size_read;
+            continue;
+        }
         if (size_read == 0) {
+            /* End of file */
             break;
         }
-        size_total += size_read;
+        if (size_read == -2) {
+            /* Non-blocking I/O, should we wait here? */
+        }
+
+        /* Read error */
+        SDL_free(data);
+        data = NULL;
+        goto done;
     }
 
     if (datasize) {