From bee7bf5767f5dc83eba88d740b1a729ca7077b9b Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 28 Sep 2017 09:16:02 +0900 Subject: [PATCH] efl ui text - fix resource leak of strbuf and pointless buffer code edje_object_part_text_style_user_push() doesnt need you to stringshare_add a string... some other code did it because it "gets" the string from an obj that might free/delete the string on push etc. or before so it keeps a copy but then it stringshare_del's it anyway... the _textpath_ellipsis_set() code creates a trsbuf that wasn't freed if enabled was false and it never stringshare_del'd the string is stringshare_added... all of this was pointless code anyway. you could just pass the constant string directly. fixes CID 1380543 --- src/lib/elementary/efl_ui_textpath.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c index 22883f2d01..722dbe305d 100644 --- a/src/lib/elementary/efl_ui_textpath.c +++ b/src/lib/elementary/efl_ui_textpath.c @@ -410,17 +410,11 @@ _sizing_eval(Efl_Ui_Textpath_Data *pd) static void _textpath_ellipsis_set(Efl_Ui_Textpath_Data *pd, Eina_Bool enabled) { - Eina_Strbuf *buf = eina_strbuf_new(); - const char *format; - edje_object_part_text_style_user_pop(pd->text_obj, "elm.text"); + if (enabled) - { - eina_strbuf_append_printf(buf, "DEFAULT='ellipsis=1.0'"); - format = eina_stringshare_add(eina_strbuf_string_get(buf)); - eina_strbuf_free(buf); - edje_object_part_text_style_user_push(pd->text_obj, "elm.text", format); - } + edje_object_part_text_style_user_push(pd->text_obj, "elm.text", + "DEFAULT='ellipsis=1.0'"); } static void