diff --git a/frontend/menu/rmenu.c b/frontend/menu/rmenu.c index e1be108394..1e0e532006 100644 --- a/frontend/menu/rmenu.c +++ b/frontend/menu/rmenu.c @@ -3368,11 +3368,21 @@ static int menu_input_process(uint8_t menu_type, uint64_t old_state) void menu_init(void) { - browser = (filebrowser_t*)filebrowser_init(g_extern.console.main_wrap.default_rom_startup_dir, g_extern.system.valid_extensions); - tmpBrowser = (filebrowser_t*)filebrowser_init(default_paths.filesystem_root_dir, ""); + browser = (filebrowser_t*)calloc(1, sizeof(*browser)); + tmpBrowser = (filebrowser_t*)calloc(1, sizeof(*tmpBrowser)); - filebrowser_set_root_and_ext(browser, g_extern.system.valid_extensions, g_extern.console.main_wrap.default_rom_startup_dir); - filebrowser_set_root_and_ext(tmpBrowser, NULL, default_paths.filesystem_root_dir); + strlcpy(browser->extensions, g_extern.system.valid_extensions, + sizeof(browser->extensions)); + strlcpy(browser->root_dir, g_extern.console.main_wrap.default_rom_startup_dir, + sizeof(browser->root_dir)); + + strlcpy(tmpBrowser->extensions, "", + sizeof(tmpBrowser->extensions)); + strlcpy(tmpBrowser->root_dir, default_paths.filesystem_root_dir, + sizeof(tmpBrowser->root_dir)); + + filebrowser_iterate(browser, FILEBROWSER_ACTION_RESET); + filebrowser_iterate(tmpBrowser, FILEBROWSER_ACTION_RESET); menu_stack_push(FILE_BROWSER_MENU); diff --git a/frontend/menu/rmenu_xui.cpp b/frontend/menu/rmenu_xui.cpp index 059d799dca..3373677142 100644 --- a/frontend/menu/rmenu_xui.cpp +++ b/frontend/menu/rmenu_xui.cpp @@ -1337,8 +1337,21 @@ void menu_init (void) return; } - browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, g_extern.system.valid_extensions); - tmp_browser = (filebrowser_t*)filebrowser_init(default_paths.filebrowser_startup_dir, ""); + browser = (filebrowser_t*)calloc(1, sizeof(*browser)); + tmpBrowser = (filebrowser_t*)calloc(1, sizeof(*tmpBrowser)); + + strlcpy(browser->extensions, g_extern.system.valid_extensions, + sizeof(browser->extensions)); + strlcpy(browser->root_dir, default_paths.filebrowser_startup_dir, + sizeof(browser->root_dir)); + + strlcpy(tmpBrowser->extensions, "", + sizeof(tmpBrowser->extensions)); + strlcpy(tmpBrowser->root_dir, default_paths.filebrowser_startup_dir, + sizeof(tmpBrowser->root_dir)); + + filebrowser_iterate(browser, FILEBROWSER_ACTION_RESET); + filebrowser_iterate(tmpBrowser, FILEBROWSER_ACTION_RESET); } void menu_free (void) diff --git a/frontend/menu/utils/file_browser.c b/frontend/menu/utils/file_browser.c index a518ae175d..b9cffca8da 100644 --- a/frontend/menu/utils/file_browser.c +++ b/frontend/menu/utils/file_browser.c @@ -46,13 +46,6 @@ const char *path, const char * extensions) return false; } -void *filebrowser_init(const char *start_dir, const char *extensions) -{ - filebrowser_t *filebrowser = (filebrowser_t*)calloc(1, sizeof(*filebrowser)); - directory_parse(filebrowser, 0, start_dir, extensions); - return filebrowser; -} - void filebrowser_free(void *data) { filebrowser_t *filebrowser = (filebrowser_t*)data; diff --git a/frontend/menu/utils/file_browser.h b/frontend/menu/utils/file_browser.h index 69ece0378b..52857be1a8 100644 --- a/frontend/menu/utils/file_browser.h +++ b/frontend/menu/utils/file_browser.h @@ -51,6 +51,4 @@ void filebrowser_set_root_and_ext(void *data, const char *ext, const char *root_ void filebrowser_free(void *data); bool filebrowser_iterate(void *data, unsigned action); -void *filebrowser_init(const char *start_dir, const char *extensions); - #endif /* FILEBROWSER_H_ */