diff --git a/menu/widgets/menu_list.c b/menu/widgets/menu_list.c index 3606475a93..24b6b92505 100644 --- a/menu/widgets/menu_list.c +++ b/menu/widgets/menu_list.c @@ -79,29 +79,33 @@ void menu_list_free(menu_list_t *menu_list) menu_list_t *menu_list_new(void) { unsigned i; - menu_list_t *list = (menu_list_t*)calloc(1, sizeof(*list)); + menu_list_t *list = (menu_list_t*)malloc(sizeof(*list)); if (!list) return NULL; - list->menu_stack = (file_list_t**)calloc(1, sizeof(*list->menu_stack)); + list->menu_stack_size = 1; + list->selection_buf_size = 1; + list->selection_buf = NULL; + list->menu_stack = (file_list_t**) + calloc(list->menu_stack_size, sizeof(*list->menu_stack)); if (!list->menu_stack) goto error; - list->selection_buf = (file_list_t**)calloc(1, sizeof(*list->selection_buf)); + list->selection_buf = (file_list_t**) + calloc(list->selection_buf_size, sizeof(*list->selection_buf)); if (!list->selection_buf) goto error; - list->menu_stack_size = 1; - list->selection_buf_size = 1; - for (i = 0; i < list->menu_stack_size; i++) - list->menu_stack[i] = (file_list_t*)calloc(1, sizeof(*list->menu_stack[i])); + list->menu_stack[i] = (file_list_t*) + calloc(1, sizeof(*list->menu_stack[i])); for (i = 0; i < list->selection_buf_size; i++) - list->selection_buf[i] = (file_list_t*)calloc(1, sizeof(*list->selection_buf[i])); + list->selection_buf[i] = (file_list_t*) + calloc(1, sizeof(*list->selection_buf[i])); return list;