diff options
Diffstat (limited to 'games/RetroArch/savestates.patch')
-rw-r--r-- | games/RetroArch/savestates.patch | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/games/RetroArch/savestates.patch b/games/RetroArch/savestates.patch deleted file mode 100644 index 932783783b..0000000000 --- a/games/RetroArch/savestates.patch +++ /dev/null @@ -1,206 +0,0 @@ -From 64459bda3a8add5c5e679b3fa4d1fd4cd7796233 Mon Sep 17 00:00:00 2001 -From: Tatsuya79 <jeanpascalmeunier@hotmail.com> -Date: Sat, 1 Sep 2018 01:41:21 +0200 -Subject: [PATCH] revert #7156 - -revert https://github.com/libretro/RetroArch/pull/7156 ---- - tasks/task_save.c | 142 ++++++++++++++++++++-------------------------- - 1 file changed, 62 insertions(+), 80 deletions(-) - -diff --git a/tasks/task_save.c b/tasks/task_save.c -index fb08c229b7..1b5d93be4e 100644 ---- a/tasks/task_save.c -+++ b/tasks/task_save.c -@@ -555,33 +555,6 @@ static void task_save_handler_finished(retro_task_t *task, - free(state); - } - --void* get_serialized_data(const char *path, size_t serial_size) --{ -- retro_ctx_serialize_info_t serial_info; -- bool ret = false; -- void *data = NULL; -- -- data = malloc(serial_size); -- -- if (!data) -- return NULL; -- -- RARCH_LOG("%s: %d %s.\n", -- msg_hash_to_str(MSG_STATE_SIZE), -- (int)serial_size, -- msg_hash_to_str(MSG_BYTES)); -- -- serial_info.data = data; -- serial_info.size = serial_size; -- ret = core_serialize(&serial_info); -- if ( !ret ) -- { -- free(data) ; -- return NULL ; -- } -- return data ; --} -- - /** - * task_save_handler: - * @task : the task being worked on -@@ -603,22 +576,9 @@ static void task_save_handler(retro_task_t *task) - return; - } - -- if (!state->data) -- { -- state->data = get_serialized_data(state->path, state->size) ; -- } -- - remaining = MIN(state->size - state->written, SAVE_STATE_CHUNK); -- -- if ( state->data ) -- { -- written = (int)intfstream_write(state->file, -- (uint8_t*)state->data + state->written, remaining); -- } -- else -- { -- written = 0 ; -- } -+ written = (int)intfstream_write(state->file, -+ (uint8_t*)state->data + state->written, remaining); - - state->written += written; - -@@ -1174,7 +1134,6 @@ error: - free(task); - } - -- - /** - * content_save_state: - * @path : path of saved state that shall be written to. -@@ -1185,62 +1144,85 @@ error: - **/ - bool content_save_state(const char *path, bool save_to_disk, bool autosave) - { -- //retro_ctx_serialize_info_t serial_info; -+ retro_ctx_serialize_info_t serial_info; - retro_ctx_size_info_t info; - bool ret = false; - void *data = NULL; - - core_serialize_size(&info); - -- if (save_to_disk) -+ RARCH_LOG("%s: \"%s\".\n", -+ msg_hash_to_str(MSG_SAVING_STATE), -+ path); -+ -+ if (info.size == 0) -+ return false; -+ -+ data = malloc(info.size); -+ -+ if (!data) -+ return false; -+ -+ RARCH_LOG("%s: %d %s.\n", -+ msg_hash_to_str(MSG_STATE_SIZE), -+ (int)info.size, -+ msg_hash_to_str(MSG_BYTES)); -+ -+ serial_info.data = data; -+ serial_info.size = info.size; -+ ret = core_serialize(&serial_info); -+ -+ if (ret) - { -- if (filestream_exists(path) && !autosave) -+ if (save_to_disk) - { -- /* Before overwritting the savestate file, load it into a buffer -- to allow undo_save_state() to work */ -- /* TODO/FIXME - Use msg_hash_to_str here */ -- RARCH_LOG("%s ...\n", -- msg_hash_to_str(MSG_FILE_ALREADY_EXISTS_SAVING_TO_BACKUP_BUFFER)); -+ if (filestream_exists(path) && !autosave) -+ { -+ /* Before overwritting the savestate file, load it into a buffer -+ to allow undo_save_state() to work */ -+ /* TODO/FIXME - Use msg_hash_to_str here */ -+ RARCH_LOG("%s ...\n", -+ msg_hash_to_str(MSG_FILE_ALREADY_EXISTS_SAVING_TO_BACKUP_BUFFER)); - -- task_push_load_and_save_state(path, data, info.size, true, autosave); -+ task_push_load_and_save_state(path, data, info.size, true, autosave); -+ } -+ else -+ task_push_save_state(path, data, info.size, autosave); - } - else -- task_push_save_state(path, data, info.size, autosave); -- } -- else -- { -- data = get_serialized_data(path, info.size) ; -- if ( data == NULL ) - { -- RARCH_ERR("%s \"%s\".\n", -- msg_hash_to_str(MSG_FAILED_TO_SAVE_STATE_TO), -- path); -- return false ; -- } -- /* save_to_disk is false, which means we are saving the state -- in undo_load_buf to allow content_undo_load_state() to restore it */ -+ /* save_to_disk is false, which means we are saving the state -+ in undo_load_buf to allow content_undo_load_state() to restore it */ - -- /* If we were holding onto an old state already, clean it up first */ -- if (undo_load_buf.data) -- { -- free(undo_load_buf.data); -- undo_load_buf.data = NULL; -- } -+ /* If we were holding onto an old state already, clean it up first */ -+ if (undo_load_buf.data) -+ { -+ free(undo_load_buf.data); -+ undo_load_buf.data = NULL; -+ } - -- undo_load_buf.data = malloc(info.size); -- if (!undo_load_buf.data) -- { -+ undo_load_buf.data = malloc(info.size); -+ if (!undo_load_buf.data) -+ { -+ free(data); -+ return false; -+ } -+ -+ memcpy(undo_load_buf.data, data, info.size); - free(data); -- return false; -+ undo_load_buf.size = info.size; -+ strlcpy(undo_load_buf.path, path, sizeof(undo_load_buf.path)); - } -- -- memcpy(undo_load_buf.data, data, info.size); -+ } -+ else -+ { - free(data); -- undo_load_buf.size = info.size; -- strlcpy(undo_load_buf.path, path, sizeof(undo_load_buf.path)); -+ RARCH_ERR("%s \"%s\".\n", -+ msg_hash_to_str(MSG_FAILED_TO_SAVE_STATE_TO), -+ path); - } - -- return true; -+ return ret; - } - - /** --- -2.18.0 |