From 41c718edcaf7a3f7efc9705c76b986f475153632 Mon Sep 17 00:00:00 2001
From: zhailiangliang <[EMAIL REDACTED]>
Date: Tue, 11 Oct 2022 10:07:32 +0800
Subject: [PATCH] Fix memory leak in PSP_CreateTexture
---
src/render/psp/SDL_render_psp.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/render/psp/SDL_render_psp.c b/src/render/psp/SDL_render_psp.c
index 6cfb43a99d5d..3e176463de88 100644
--- a/src/render/psp/SDL_render_psp.c
+++ b/src/render/psp/SDL_render_psp.c
@@ -525,6 +525,7 @@ PSP_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
break;
default:
+ SDL_free(psp_texture);
return -1;
}
@@ -532,6 +533,7 @@ PSP_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
psp_texture->size = psp_texture->textureHeight*psp_texture->pitch;
if(texture->access & SDL_TEXTUREACCESS_TARGET) {
if(TextureSpillTargetsForSpace(renderer->driverdata, psp_texture->size) < 0){
+ SDL_free(psp_texture);
return -1;
}
psp_texture->data = valloc(psp_texture->size);
@@ -1372,10 +1374,7 @@ PSP_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->driverdata = data;
renderer->window = window;
- if (data->initialized != SDL_FALSE)
- return 0;
data->initialized = SDL_TRUE;
-
data->most_recent_target = NULL;
data->least_recent_target = NULL;