From: iLag Date: Thu, 23 Mar 2017 18:13:56 +0000 (-0700) Subject: Fix memory management so the emulator won't crash with multiple cheats in a file. X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5326b1a0e5fe59e95db275c52acffd4bd50e7da;p=picodrive.git Fix memory management so the emulator won't crash with multiple cheats in a file. --- 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,"+"); } }