From 7696d5504728f5263d1e7da86ca285523d86b153 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 23 May 2015 19:18:56 +0200 Subject: [PATCH] (Database) cleanup --- database_info.c | 1 - menu/menu_entry.c | 2 +- tasks/task_database.c | 49 ++++++++++++++++++++----------------------- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/database_info.c b/database_info.c index 1238d6d27b..9a77116d64 100644 --- a/database_info.c +++ b/database_info.c @@ -83,7 +83,6 @@ void database_info_free(database_info_handle_t *db) return; string_list_free(db->list); - free(db); } static char *bin_to_hex_alloc(const uint8_t *data, size_t len) diff --git a/menu/menu_entry.c b/menu/menu_entry.c index f24e5da720..789a0303f0 100644 --- a/menu/menu_entry.c +++ b/menu/menu_entry.c @@ -516,7 +516,7 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action) break; case MENU_ACTION_TEST: - rarch_main_data_msg_queue_push(DATA_TYPE_DB, "", "cb_db_scan", 0, 1, + rarch_main_data_msg_queue_push(DATA_TYPE_DB, "/home/squarepusher/roms", "cb_db_scan", 0, 1, true); break; diff --git a/tasks/task_database.c b/tasks/task_database.c index 5639bd0497..751ccfac46 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -38,10 +38,6 @@ static int database_info_iterate_playlist( database_info_handle_t *db, const char *name) { char parent_dir[PATH_MAX_LENGTH]; - bool to_continue = (db->list_ptr < db->list->size); - - if (!to_continue) - return -1; path_parent_dir(parent_dir); @@ -85,7 +81,9 @@ static int database_info_iterate_playlist( db->list_ptr++; - return 0; + if (db->list_ptr < db->list->size) + return 0; + return -1; } static int database_info_iterate(database_info_handle_t *db) @@ -105,12 +103,7 @@ static int database_info_iterate(database_info_handle_t *db) case DATABASE_TYPE_NONE: break; case DATABASE_TYPE_ITERATE: - if (database_info_iterate_playlist(db, name) != 0) - { - rarch_main_msg_queue_push("Scanning of directory finished.\n", 0, 180, true); - db->status = DATABASE_STATUS_FREE; - return -1; - } + return database_info_iterate_playlist(db, name); break; } @@ -124,8 +117,6 @@ static int database_info_poll(db_handle_t *db) if (!path) return -1; - RARCH_LOG("Gets here.\n"); - db->handle = database_info_init("/home/squarepusher/roms", DATABASE_TYPE_ITERATE); return 0; @@ -137,29 +128,35 @@ void rarch_main_data_db_iterate(bool is_thread, void *data) database_info_handle_t *db = runloop ? runloop->db.handle : NULL; if (!db || !runloop) - { - if (database_info_poll(&runloop->db) != -1) - { - if (runloop->db.handle) - runloop->db.handle->status = DATABASE_STATUS_ITERATE; - } - return; - } + goto do_poll; switch (db->status) { case DATABASE_STATUS_ITERATE: - database_info_iterate(db); + if (database_info_iterate(db) != 0) + { + rarch_main_msg_queue_push("Scanning of directory finished.\n", 0, 180, true); + db->status = DATABASE_STATUS_FREE; + } break; case DATABASE_STATUS_FREE: database_info_free(db); - db = NULL; + if (runloop->db.handle) + free(runloop->db.handle); + runloop->db.handle = NULL; break; default: case DATABASE_STATUS_NONE: - if (database_info_poll(&runloop->db) != -1) - db->status = DATABASE_STATUS_ITERATE; - break; + goto do_poll; + } + + return; + +do_poll: + if (database_info_poll(&runloop->db) != -1) + { + if (runloop->db.handle) + runloop->db.handle->status = DATABASE_STATUS_ITERATE; } } #endif