From 459a19be5758fbd1337554eca43199db05605816 Mon Sep 17 00:00:00 2001 From: Brad Parker Date: Mon, 7 Jan 2019 00:31:52 -0500 Subject: [PATCH] fix infinite loop with null menu driver --- menu/drivers/null.c | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/menu/drivers/null.c b/menu/drivers/null.c index 55a6bdc5f3..9022267cb1 100644 --- a/menu/drivers/null.c +++ b/menu/drivers/null.c @@ -22,18 +22,54 @@ #include "../menu_driver.h" +static bool g_menu_on = false; + +static void* null_init(void **userdata, bool video_is_threaded) +{ + menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); + + if (!menu) + return NULL; + + return menu; +} + +static void null_free(void *data) +{ + menu_handle_t *menu = (menu_handle_t*)data; + + /*if (menu) + free(menu);*/ +} + +static void null_toggle(void *userdata, bool menu_on) +{ + (void)userdata; + + g_menu_on = menu_on; +} + +static int null_menu_iterate(menu_handle_t *menu, void *userdata, enum menu_action action) +{ + (void)menu; + (void)userdata; + (void)action; + + return 1; +} + menu_ctx_driver_t menu_ctx_null = { NULL, /* set_texture */ NULL, /* render_messagebox */ - NULL, /* iterate */ + null_menu_iterate, NULL, /* render */ NULL, /* frame */ - NULL, /* init */ - NULL, /* free */ + null_init, + null_free, NULL, /* context_reset */ NULL, /* context_destroy */ NULL, /* populate_entries */ - NULL, /* toggle */ + null_toggle, NULL, /* navigation_clear */ NULL, /* navigation_decrement */ NULL, /* navigation_increment */