From e5326b1a0e5fe59e95db275c52acffd4bd50e7da Mon Sep 17 00:00:00 2001 From: iLag Date: Thu, 23 Mar 2017 11:13:56 -0700 Subject: [PATCH] Fix memory management so the emulator won't crash with multiple cheats in a file. --- platform/libretro/libretro.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/libretro/libretro.c b/platform/libretro/libretro.c index 8e1bed3..a4bc0a1 100644 --- a/platform/libretro/libretro.c +++ b/platform/libretro/libretro.c @@ -725,7 +725,7 @@ void retro_cheat_reset(void) void retro_cheat_set(unsigned index, bool enabled, const char *code) { patch pt; - int array_len = 0; + int array_len = PicoPatchCount; char codeCopy[256]; char *buff; bool multiline=0; @@ -741,6 +741,7 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code) while (buff != NULL) { + log_cb(RETRO_LOG_INFO,"Buff: %s\n",buff); decode(buff, &pt); if (pt.addr == (uint32_t) -1 || pt.data == (uint16_t) -1) { @@ -774,6 +775,7 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code) if (!multiline) break; + buff = strtok(NULL,"+"); } } -- 2.39.2