diff --git a/menu/menu_database.c b/menu/menu_database.c index 31024f1203..fe10269ab2 100644 --- a/menu/menu_database.c +++ b/menu/menu_database.c @@ -54,9 +54,10 @@ void menu_database_free(menu_handle_t *menu) menu_database_playlist_free(menu); } -bool menu_database_realloc(menu_handle_t *menu, const char *path) +bool menu_database_realloc(menu_handle_t *menu, const char *path, + bool force) { - if (!strcmp(menu->db_playlist_file, path)) + if (!strcmp(menu->db_playlist_file, path) && !force) return true; menu_database_playlist_free(menu); diff --git a/menu/menu_database.h b/menu/menu_database.h index 6987f3735d..41ba3c7b40 100644 --- a/menu/menu_database.h +++ b/menu/menu_database.h @@ -32,7 +32,8 @@ int menu_database_populate_query(file_list_t *list, const char *path, void menu_database_free(menu_handle_t *menu); -bool menu_database_realloc(menu_handle_t *menu, const char *path); +bool menu_database_realloc(menu_handle_t *menu, const char *path, + bool force); #ifdef __cplusplus } diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index fbb87da5a2..3f30eb96a6 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -879,7 +879,7 @@ static int deferred_push_rdb_entry_detail(void *data, void *userdata, fill_pathname_join(path_rdl, g_settings.content_database, path_base, sizeof(path_rdl)); - menu_database_realloc(driver.menu, path_rdl); + menu_database_realloc(driver.menu, path_rdl, false); playlist = driver.menu->db_playlist;