From c48ccdb1fc1f9f2fdb83a3ec4e8aff9b54f23228 Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata Date: Sun, 29 Sep 2019 22:41:51 +0200 Subject: [PATCH 1/2] Fix memory leak in the PS2 GFX and PS2 Font --- Makefile.ps2 | 5 ++++- frontend/drivers/platform_ps2.c | 4 ++-- gfx/drivers/ps2_gfx.c | 5 +++-- gfx/drivers_font/ps2_font.c | 13 +++++++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Makefile.ps2 b/Makefile.ps2 index 8efe1f6afa..144eae1f99 100644 --- a/Makefile.ps2 +++ b/Makefile.ps2 @@ -1,4 +1,4 @@ -BUILD_PRX = 0 +BUILD_FOR_PCSX2 = 1 DEBUG = 0 HAVE_KERNEL_PRX = 0 HAVE_LOGGER = 0 @@ -45,6 +45,9 @@ LDFLAGS += -L$(PS2SDK)/ports/lib -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ee/lib -L$(CD LIBS += -lretro_ps2 -lgskit -ldmakit -lgskit_toolkit -laudsrv -lmf -lpadx -lmtap -lmc -lhdd -lsdl -lfileXio -lz LIBS += -lcdvdfs -lpatches -lpoweroff +ifeq ($(BUILD_FOR_PCSX2), 1) +RARCH_DEFINES += -DBUILD_FOR_PCSX2 +endif ifeq ($(HAVE_THREADS), 1) RARCH_DEFINES += -DHAVE_THREADS diff --git a/frontend/drivers/platform_ps2.c b/frontend/drivers/platform_ps2.c index 9e0a5722b3..a090c0622c 100644 --- a/frontend/drivers/platform_ps2.c +++ b/frontend/drivers/platform_ps2.c @@ -156,7 +156,7 @@ static void frontend_ps2_init(void *data) int bootDeviceID; SifInitRpc(0); -#if !defined(DEBUG) +#if !defined(DEBUG) || defined(BUILD_FOR_PCSX2) /* Comment this line if you don't wanna debug the output */ while(!SifIopReset(NULL, 0)){}; #endif @@ -368,7 +368,7 @@ static int frontend_ps2_parse_drive_list(void *data, bool load_content) msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), enum_idx, FILE_TYPE_DIRECTORY, 0, 0); -#if defined(DEBUG) +#if defined(DEBUG) && !defined(BUILD_FOR_PCSX2) menu_entries_append_enum(list, "host:", msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR), diff --git a/gfx/drivers/ps2_gfx.c b/gfx/drivers/ps2_gfx.c index 32949824ee..673e9d0b5a 100644 --- a/gfx/drivers/ps2_gfx.c +++ b/gfx/drivers/ps2_gfx.c @@ -99,8 +99,6 @@ static void init_ps2_video(ps2_video_t *ps2) static void deinitTexture(GSTEXTURE *texture) { - free(texture->Mem); - free(texture->Clut); texture->Mem = NULL; texture->Clut = NULL; } @@ -369,6 +367,9 @@ static void ps2_gfx_free(void *data) deinitTexture(ps2->menuTexture); deinitTexture(ps2->coreTexture); + free(ps2->menuTexture); + free(ps2->coreTexture); + gsKit_deinit_global(ps2->gsGlobal); free(data); diff --git a/gfx/drivers_font/ps2_font.c b/gfx/drivers_font/ps2_font.c index 4ba0a18446..a2eea0dfc3 100644 --- a/gfx/drivers_font/ps2_font.c +++ b/gfx/drivers_font/ps2_font.c @@ -45,10 +45,15 @@ static u32 gsKit_fontm_clut[16] = { 0x00000000, 0x11111111, 0x22222222, 0x333333 static void deinit_texture(GSTEXTURE *texture) { - free(texture->Mem); - free(texture->Clut); - texture->Mem = NULL; - texture->Clut = NULL; + if (texture->Mem!= NULL) { + free(texture->Mem); + texture->Mem = NULL; + } + + if (texture->Mem!= NULL) { + free(texture->Clut); + texture->Clut = NULL; + } } static void deinit_gsfont(GSFONTM *gsFontM) From eebe0eda48b8b7bee9cb7c609776807e7a5169e6 Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata Date: Fri, 4 Oct 2019 16:12:43 +0200 Subject: [PATCH 2/2] Disable BUILD_FOR_PCSX2 by default --- Makefile.ps2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.ps2 b/Makefile.ps2 index 144eae1f99..1d8422cb7b 100644 --- a/Makefile.ps2 +++ b/Makefile.ps2 @@ -1,4 +1,4 @@ -BUILD_FOR_PCSX2 = 1 +BUILD_FOR_PCSX2 = 0 DEBUG = 0 HAVE_KERNEL_PRX = 0 HAVE_LOGGER = 0