Browse Source

video: fix error messages
- do not overwrite error message set by SDL_InitFormat (SDL_AllocFormat)
- set proper error message (Cocoa_Metal_CreateView)
- protect against allocation failure (UIKit_Metal_CreateView)

pionere 2 years ago
parent
commit
cf0cb44df8

+ 1 - 1
src/video/SDL_pixels.c

@@ -528,7 +528,6 @@ SDL_AllocFormat(Uint32 pixel_format)
     if (SDL_InitFormat(format, pixel_format) < 0) {
         SDL_AtomicUnlock(&formats_lock);
         SDL_free(format);
-        SDL_InvalidParamError("format");
         return NULL;
     }
 
@@ -669,6 +668,7 @@ SDL_AllocPalette(int ncolors)
         (SDL_Color *) SDL_malloc(ncolors * sizeof(*palette->colors));
     if (!palette->colors) {
         SDL_free(palette);
+        SDL_OutOfMemory();
         return NULL;
     }
     palette->ncolors = ncolors;

+ 1 - 0
src/video/cocoa/SDL_cocoametalview.m

@@ -145,6 +145,7 @@ Cocoa_Metal_CreateView(_THIS, SDL_Window * window)
                                                 highDPI:highDPI
                                                 windowID:windowID];
     if (newview == nil) {
+        SDL_OutOfMemory();
         return NULL;
     }
 

+ 5 - 0
src/video/uikit/SDL_uikitmetalview.m

@@ -94,6 +94,11 @@ UIKit_Metal_CreateView(_THIS, SDL_Window * window)
 
     metalview = [[SDL_uikitmetalview alloc] initWithFrame:data.uiwindow.bounds
                                                     scale:scale];
+    if (metalview == nil) {
+        SDL_OutOfMemory();
+        return NULL;
+    }
+
     [metalview setSDLWindow:window];
 
     return (void*)CFBridgingRetain(metalview);