(Database) cleanup

This commit is contained in:
twinaphex 2015-05-23 19:18:56 +02:00
parent e5e9e80cfb
commit 7696d55047
3 changed files with 24 additions and 28 deletions

View File

@ -83,7 +83,6 @@ void database_info_free(database_info_handle_t *db)
return; return;
string_list_free(db->list); string_list_free(db->list);
free(db);
} }
static char *bin_to_hex_alloc(const uint8_t *data, size_t len) static char *bin_to_hex_alloc(const uint8_t *data, size_t len)

View File

@ -516,7 +516,7 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action)
break; break;
case MENU_ACTION_TEST: 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); true);
break; break;

View File

@ -38,10 +38,6 @@ static int database_info_iterate_playlist(
database_info_handle_t *db, const char *name) database_info_handle_t *db, const char *name)
{ {
char parent_dir[PATH_MAX_LENGTH]; 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); path_parent_dir(parent_dir);
@ -85,7 +81,9 @@ static int database_info_iterate_playlist(
db->list_ptr++; 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) 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: case DATABASE_TYPE_NONE:
break; break;
case DATABASE_TYPE_ITERATE: case DATABASE_TYPE_ITERATE:
if (database_info_iterate_playlist(db, name) != 0) return database_info_iterate_playlist(db, name);
{
rarch_main_msg_queue_push("Scanning of directory finished.\n", 0, 180, true);
db->status = DATABASE_STATUS_FREE;
return -1;
}
break; break;
} }
@ -124,8 +117,6 @@ static int database_info_poll(db_handle_t *db)
if (!path) if (!path)
return -1; return -1;
RARCH_LOG("Gets here.\n");
db->handle = database_info_init("/home/squarepusher/roms", DATABASE_TYPE_ITERATE); db->handle = database_info_init("/home/squarepusher/roms", DATABASE_TYPE_ITERATE);
return 0; 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; database_info_handle_t *db = runloop ? runloop->db.handle : NULL;
if (!db || !runloop) if (!db || !runloop)
{ goto do_poll;
if (database_info_poll(&runloop->db) != -1)
{
if (runloop->db.handle)
runloop->db.handle->status = DATABASE_STATUS_ITERATE;
}
return;
}
switch (db->status) switch (db->status)
{ {
case DATABASE_STATUS_ITERATE: 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; break;
case DATABASE_STATUS_FREE: case DATABASE_STATUS_FREE:
database_info_free(db); database_info_free(db);
db = NULL; if (runloop->db.handle)
free(runloop->db.handle);
runloop->db.handle = NULL;
break; break;
default: default:
case DATABASE_STATUS_NONE: case DATABASE_STATUS_NONE:
if (database_info_poll(&runloop->db) != -1) goto do_poll;
db->status = DATABASE_STATUS_ITERATE; }
break;
return;
do_poll:
if (database_info_poll(&runloop->db) != -1)
{
if (runloop->db.handle)
runloop->db.handle->status = DATABASE_STATUS_ITERATE;
} }
} }
#endif #endif