diff --git a/database_info.c b/database_info.c index 84d0c19998..38483b3d58 100644 --- a/database_info.c +++ b/database_info.c @@ -668,3 +668,10 @@ enum database_type database_info_get_type(database_info_handle_t *handle) return DATABASE_TYPE_NONE; return handle->type; } + +const char *database_info_get_current_element_name(database_info_handle_t *handle) +{ + if (!handle || !handle->list) + return NULL; + return handle->list->elems[handle->list_ptr].data; +} diff --git a/database_info.h b/database_info.h index e33f2eb1f7..7f0e8e03be 100644 --- a/database_info.h +++ b/database_info.h @@ -110,6 +110,8 @@ database_info_handle_t *database_info_file_init(const char *path, void database_info_set_type(database_info_handle_t *handle, enum database_type type); +const char *database_info_get_current_element_name(database_info_handle_t *handle); + enum database_type database_info_get_type(database_info_handle_t *handle); void database_info_free(database_info_handle_t *handle); diff --git a/tasks/task_database.c b/tasks/task_database.c index 01c9dd96e2..49fd1fff47 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -246,8 +246,8 @@ static int database_info_list_iterate_found_match( settings_t *settings = config_get_ptr(); const char *db_path = db_state->list->elems[db_state->list_index].data; - const char *entry_path = db ? - db->list->elems[db->list_ptr].data : NULL; + const char *entry_path = + database_info_get_current_element_name(db); database_info_t *db_info_entry = &db_state->info->list[db_state->entry_index]; @@ -495,10 +495,10 @@ static int task_database_iterate(database_state_handle_t *db_state, { const char *name = NULL; - if (!db || !db->list) + if (!db) return -1; - name = db->list->elems[db->list_ptr].data; + name = database_info_get_current_element_name(db); if (!name) return 0; @@ -572,7 +572,7 @@ static void task_database_handler(retro_task_t *task) dbinfo->status = DATABASE_STATUS_ITERATE_START; break; case DATABASE_STATUS_ITERATE_START: - name = dbinfo->list->elems[dbinfo->list_ptr].data; + name = database_info_get_current_element_name(dbinfo); task_database_cleanup_state(dbstate); dbstate->list_index = 0; dbstate->entry_index = 0;