From 992b87321adbb79d6fe8b188d46bb60092e1a499 Mon Sep 17 00:00:00 2001 From: Brad Parker Date: Mon, 19 Sep 2016 21:06:07 -0400 Subject: [PATCH] more archive paths --- libretro-common/file/archive_file.c | 6 ------ tasks/task_database.c | 8 ++++++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/libretro-common/file/archive_file.c b/libretro-common/file/archive_file.c index 2aeeb6bee3..0464ffbfab 100644 --- a/libretro-common/file/archive_file.c +++ b/libretro-common/file/archive_file.c @@ -572,19 +572,13 @@ struct string_list *file_archive_get_file_list(const char *path, goto error; if (userdata.archive_path) - { free(userdata.archive_path); - userdata.archive_path = NULL; - } return userdata.list; error: if (userdata.archive_path) - { free(userdata.archive_path); - userdata.archive_path = NULL; - } if (userdata.list) string_list_free(userdata.list); return NULL; diff --git a/tasks/task_database.c b/tasks/task_database.c index ca58a6fab2..efccf67845 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -414,14 +414,22 @@ static int task_database_iterate_playlist_archive( strlcpy(userdata.archive_name, db_state->archive_name, sizeof(userdata.archive_name)); userdata.crc = db_state->crc; + userdata.archive_path = strdup(name); if (file_archive_parse_file_iterate(&db->state, &returnerr, name, NULL, archive_compare_crc32, &userdata)) + { + if (userdata.archive_path) + free(userdata.archive_path); return 0; + } if (db_state->crc) file_archive_parse_file_iterate_stop(&db->state); + + if (userdata.archive_path) + free(userdata.archive_path); #endif return 1;