Fix memory management so the emulator won't crash with multiple cheats in a file.
authoriLag <ilagdoesntcheckthisemail@gmail.com>
Thu, 23 Mar 2017 18:13:56 +0000 (11:13 -0700)
committeriLag <ilagdoesntcheckthisemail@gmail.com>
Thu, 23 Mar 2017 18:13:56 +0000 (11:13 -0700)
platform/libretro/libretro.c

index 8e1bed3..a4bc0a1 100644 (file)
@@ -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,"+");
        }
 }