diff --git a/menu/menu_common_list.c b/menu/menu_common_list.c index 79f14118bd..7204b3ba37 100644 --- a/menu/menu_common_list.c +++ b/menu/menu_common_list.c @@ -18,6 +18,27 @@ #include "menu.h" #include "menu_entries_cbs.h" +void menu_common_list_insert(void *data, + const char *path, const char *label, + unsigned type, size_t idx) +{ + file_list_t *list = (file_list_t*)data; + + if (!list) + return; + + list->list[idx].actiondata = (menu_file_list_cbs_t*) + calloc(1, sizeof(menu_file_list_cbs_t)); + + if (!list->list[idx].actiondata) + { + RARCH_ERR("Action data could not be allocated.\n"); + return; + } + + menu_entries_cbs_init(list, path, label, type, idx); +} + void menu_common_list_delete(void *data, size_t idx, size_t list_size) { diff --git a/menu/menu_common_list.h b/menu/menu_common_list.h index 938b1eac9a..4604245255 100644 --- a/menu/menu_common_list.h +++ b/menu/menu_common_list.h @@ -23,6 +23,10 @@ extern "C" { #endif +void menu_common_list_insert(void *data, + const char *path, const char *label, + unsigned type, size_t idx); + void menu_common_list_delete(void *data, size_t idx, size_t list_size); diff --git a/menu/menu_list.c b/menu/menu_list.c index 83c600e8f0..62538fbc8e 100644 --- a/menu/menu_list.c +++ b/menu/menu_list.c @@ -21,7 +21,6 @@ #include "../driver.h" #include "menu.h" #include "menu_common_list.h" -#include "menu_entries_cbs.h" #include "menu_list.h" #include "menu_navigation.h" @@ -350,25 +349,12 @@ void menu_list_push(file_list_t *list, const char *path, const char *label, unsigned type, size_t directory_ptr) { - size_t idx = 0; if (!list || !label) return; - idx = list->size - 1; - file_list_push(list, path, label, type, directory_ptr); - menu_driver_list_insert(list, path, label, idx); - - list->list[idx].actiondata = (menu_file_list_cbs_t*) - calloc(1, sizeof(menu_file_list_cbs_t)); - - if (!list->list[idx].actiondata) - { - RARCH_ERR("Action data could not be allocated.\n"); - return; - } - - menu_entries_cbs_init(list, path, label, type, idx); + menu_driver_list_insert(list, path, label, list->size - 1); + menu_common_list_insert(list, path, label, type, list->size - 1); } void menu_list_set_alt_at_offset(file_list_t *list, size_t idx,