diff options
-rw-r--r-- | src/eulogium.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/eulogium.c b/src/eulogium.c index 0408651..366fc7e 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -422,11 +422,13 @@ static void _eulogium_multi_text_next_cb(void *data, Evas_Object *obj EINA_UNUSE item = elm_naviframe_bottom_item_get(eulogium->layout); if (item) - elm_naviframe_item_pop_to(item); + elm_naviframe_item_pop_to(item); /* XXX what to do else? */ } else { content = eulogium_multi_text_menu(eulogium, eulogium->layout, NULL, txtdata, pagenum, pageindex); - elm_naviframe_item_simple_push(eulogium->layout, content); + if (content) + elm_naviframe_item_simple_push(eulogium->layout, content); /* XXX what else? */ } + free(data); } Evas_Object *eulogium_multi_text_menu(struct eulogium_data *eulogium, Evas_Object *parent, struct button_def *button, struct multi_text *txtdata, uint_fast8_t pagenum, Eina_Bool pageindex) @@ -456,7 +458,7 @@ Evas_Object *eulogium_multi_text_menu(struct eulogium_data *eulogium, Evas_Objec evas_object_show(object); elm_box_pack_end(_top, object); - multi_text_next_cb_data = malloc(sizeof(struct _multi_text_next_cb_data)); /* XXX never freed; memleak */ + multi_text_next_cb_data = malloc(sizeof(struct _multi_text_next_cb_data)); multi_text_next_cb_data->eulogium = eulogium; multi_text_next_cb_data->txtdata = txtdata; multi_text_next_cb_data->pagenum = pagenum + 1; |