From cf0cb44df88a4293805fdc926880155d58a46bea Mon Sep 17 00:00:00 2001
From: pionere <[EMAIL REDACTED]>
Date: Tue, 29 Nov 2022 18:43:36 +0100
Subject: [PATCH] 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)
---
src/video/SDL_pixels.c | 2 +-
src/video/cocoa/SDL_cocoametalview.m | 1 +
src/video/uikit/SDL_uikitmetalview.m | 5 +++++
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/video/SDL_pixels.c b/src/video/SDL_pixels.c
index 19f8c1a8e664..0bc3800cba7b 100644
--- a/src/video/SDL_pixels.c
+++ b/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;
diff --git a/src/video/cocoa/SDL_cocoametalview.m b/src/video/cocoa/SDL_cocoametalview.m
index ccd30db36946..2f7bca62f5e4 100644
--- a/src/video/cocoa/SDL_cocoametalview.m
+++ b/src/video/cocoa/SDL_cocoametalview.m
@@ -145,6 +145,7 @@ - (NSView *)hitTest:(NSPoint)point {
highDPI:highDPI
windowID:windowID];
if (newview == nil) {
+ SDL_OutOfMemory();
return NULL;
}
diff --git a/src/video/uikit/SDL_uikitmetalview.m b/src/video/uikit/SDL_uikitmetalview.m
index 109f0c7f8bf5..3b3ba2c7b369 100644
--- a/src/video/uikit/SDL_uikitmetalview.m
+++ b/src/video/uikit/SDL_uikitmetalview.m
@@ -94,6 +94,11 @@ - (void)updateDrawableSize
metalview = [[SDL_uikitmetalview alloc] initWithFrame:data.uiwindow.bounds
scale:scale];
+ if (metalview == nil) {
+ SDL_OutOfMemory();
+ return NULL;
+ }
+
[metalview setSDLWindow:window];
return (void*)CFBridgingRetain(metalview);