jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ccee1c0944bedf6c81cf40d0b3bcf42cd18cec66
commit ccee1c0944bedf6c81cf40d0b3bcf42cd18cec66 Author: Jean-Philippe Andre <[email protected]> Date: Fri Oct 13 10:54:54 2017 +0900 eo: Simplify debug_name_override Simply pass in the strbuf and don't expect the callee to own it. This makes things simpler and safer (it'll crash only if the callee frees said strbuf, and shouldn't leak). efl_ebug_name is new in the upcoming release, EFL 1.21. Realised this after talking with Amitesh. Thanks. See 999dbd9764426890c0e11841358f9219082b89b2 And c4769ff8989bab2b745017b843f073e5737e91e0 --- src/lib/edje/edje_smart.c | 5 ++--- src/lib/elementary/efl_ui_win.c | 5 ++--- src/lib/elementary/elm_widget.c | 5 ++--- src/lib/eo/efl_object.eo | 10 ++++------ src/lib/eo/eo.c | 6 +++--- src/lib/eo/eo_base_class.c | 5 ++--- src/lib/evas/canvas/evas_name.c | 5 ++--- src/lib/evas/canvas/evas_object_image.c | 5 ++--- src/lib/evas/canvas/evas_object_smart.c | 5 ++--- 9 files changed, 21 insertions(+), 30 deletions(-) diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index b660d352bd..7515d0a421 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -47,14 +47,13 @@ _edje_object_efl_object_constructor(Eo *obj, Edje *ed) return obj; } -EOLIAN static Eina_Strbuf * +EOLIAN static void _edje_object_efl_object_debug_name_override(Eo *obj, Edje *ed, Eina_Strbuf *sb) { - sb = efl_debug_name_override(efl_super(obj, MY_CLASS), sb); + efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, ":file='%s':group='%s'", ed->file ? eina_file_filename_get(ed->file->f) : NULL, ed->group); - return sb; } EOLIAN static void diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index d3ef9f3ede..bc66ecedf0 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -6658,12 +6658,11 @@ _efl_ui_win_class_constructor(Efl_Class *klass) } } -EOLIAN static Eina_Strbuf * +EOLIAN static void _efl_ui_win_efl_object_debug_name_override(Eo *obj, Efl_Ui_Win_Data *pd, Eina_Strbuf *sb) { - sb = efl_debug_name_override(efl_super(obj, MY_CLASS), sb); + efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, ":'%s':'%s'", pd->name, pd->title); - return sb; } EOLIAN static Eo* diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index f054bf6627..5d5dc62863 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -5130,15 +5130,14 @@ _elm_widget_legacy_ctor(Eo *obj, Elm_Widget_Smart_Data *sd) sd->legacy = EINA_TRUE; } -EOLIAN static Eina_Strbuf * +EOLIAN static void _elm_widget_efl_object_debug_name_override(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED, Eina_Strbuf *sb) { const char *focus = ""; if (elm_obj_widget_focus_get(obj)) focus = ":focused"; - sb = efl_debug_name_override(efl_super(obj, MY_CLASS), sb); + efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "%s", focus); - return sb; } EOLIAN static Eina_Bool diff --git a/src/lib/eo/efl_object.eo b/src/lib/eo/efl_object.eo index db634ea7e6..b1595081b4 100644 --- a/src/lib/eo/efl_object.eo +++ b/src/lib/eo/efl_object.eo @@ -88,19 +88,17 @@ abstract Efl.Object () the entire debug name, from parent to child classes. In C the usual way to build the string is as follows: - sb = efl_debug_name_override(efl_super(obj, MY_CLASS), sb); + efl_debug_name_override(efl_super(obj, MY_CLASS), sb); eina_strbuf_append_printf(sb, "new_information"); - return sb; - The receiving function should always either free the strbuf or - returning it back to the caller, as ownership is transferred. + In general, more debug information should be added to $sb after + calling the super function. @since 1.21 ]] params { - @in sb: ptr(Eina.Strbuf) @owned; [[A string buffer, must not be $null.]] + @in sb: ptr(Eina.Strbuf); [[A string buffer, must not be $null.]] } - return: ptr(Eina.Strbuf) @owned; [[Should not be $null, may be $sb.]] } @property event_global_freeze_count @class { get { diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 2d4fb78fb5..f567ab755b 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -2565,14 +2565,14 @@ efl_debug_name_get(const Eo *obj_id) if (!obj->cur_klass) { - sb = efl_debug_name_override((Eo *) obj_id, sb); + efl_debug_name_override((Eo *) obj_id, sb); } else { if (obj->super) - sb = efl_debug_name_override(efl_super(obj_id, (Efl_Class *) obj->cur_klass->header.id), sb); + efl_debug_name_override(efl_super(obj_id, (Efl_Class *) obj->cur_klass->header.id), sb); else - sb = efl_debug_name_override(efl_cast(obj_id, (Efl_Class *) obj->cur_klass->header.id), sb); + efl_debug_name_override(efl_cast(obj_id, (Efl_Class *) obj->cur_klass->header.id), sb); obj->super = EINA_FALSE; obj->cur_klass = NULL; } diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 72171fbf4b..7b6f915225 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -584,10 +584,9 @@ _efl_object_comment_get(Eo *obj EINA_UNUSED, Efl_Object_Data *pd) return pd->ext->comment; } -EOLIAN static Eina_Strbuf * -_efl_object_debug_name_override(Eo *obj_id EINA_UNUSED, Efl_Object_Data *pd EINA_UNUSED, Eina_Strbuf *sb) +EOLIAN static void +_efl_object_debug_name_override(Eo *obj_id EINA_UNUSED, Efl_Object_Data *pd EINA_UNUSED, Eina_Strbuf *sb EINA_UNUSED) { - return sb; } EOLIAN static void diff --git a/src/lib/evas/canvas/evas_name.c b/src/lib/evas/canvas/evas_name.c index 798dd8a621..7c432e84d1 100644 --- a/src/lib/evas/canvas/evas_name.c +++ b/src/lib/evas/canvas/evas_name.c @@ -67,13 +67,13 @@ evas_object_name_child_find(const Evas_Object *eo_obj, const char *name, int rec } /* new in EO */ -EOLIAN Eina_Strbuf * +EOLIAN void _efl_canvas_object_efl_object_debug_name_override(Eo *eo_obj, Evas_Object_Protected_Data *obj, Eina_Strbuf *sb) { const char *norend = obj->no_render ? ":no_render" : ""; const char *clip = obj->clip.clipees ? ":clipper" : ""; - sb = efl_debug_name_override(efl_super(eo_obj, EFL_CANVAS_OBJECT_CLASS), sb); + efl_debug_name_override(efl_super(eo_obj, EFL_CANVAS_OBJECT_CLASS), sb); if (obj->cur->visible) { eina_strbuf_append_printf(sb, "%s%s:(%d,%d %dx%d)", norend, clip, @@ -91,5 +91,4 @@ _efl_canvas_object_efl_object_debug_name_override(Eo *eo_obj, Evas_Object_Protec { eina_strbuf_append_printf(sb, ":hidden%s%s", norend, clip); } - return sb; } diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index ebdb03848f..9c464ac881 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -3630,10 +3630,10 @@ _evas_object_image_surface_get(Evas_Object_Protected_Data *obj, Eina_Bool create return pd->engine_data; } -EOLIAN static Eina_Strbuf * +EOLIAN static void _efl_canvas_image_internal_efl_object_debug_name_override(Eo *eo_obj, Evas_Image_Data *o, Eina_Strbuf *sb) { - sb = efl_debug_name_override(efl_super(eo_obj, MY_CLASS), sb); + efl_debug_name_override(efl_super(eo_obj, MY_CLASS), sb); if (o->cur->f) { const char *fname = eina_file_filename_get(o->cur->f); @@ -3652,7 +3652,6 @@ _efl_canvas_image_internal_efl_object_debug_name_override(Eo *eo_obj, Evas_Image { eina_strbuf_append_printf(sb, ":unknown_image"); } - return sb; } #define EFL_CANVAS_IMAGE_INTERNAL_EXTRA_OPS \ diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 411bbef408..bbc9735ba4 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -720,7 +720,7 @@ _efl_canvas_group_efl_object_destructor(Eo *eo_obj, Evas_Smart_Data *o) } } -EOLIAN static Eina_Strbuf * +EOLIAN static void _efl_canvas_group_efl_object_debug_name_override(Eo *eo_obj, Evas_Smart_Data *o, Eina_Strbuf *sb) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); @@ -729,7 +729,7 @@ _efl_canvas_group_efl_object_debug_name_override(Eo *eo_obj, Evas_Smart_Data *o, if (obj->smart.smart && obj->smart.smart->smart_class) smart_class = obj->smart.smart->smart_class->name; - sb = efl_debug_name_override(efl_super(eo_obj, MY_CLASS), sb); + efl_debug_name_override(efl_super(eo_obj, MY_CLASS), sb); if (smart_class) { eina_strbuf_append_printf(sb, ":children=%d:smart_class=%s", @@ -739,7 +739,6 @@ _efl_canvas_group_efl_object_debug_name_override(Eo *eo_obj, Evas_Smart_Data *o, { eina_strbuf_append_printf(sb, ":children=%d", eina_inlist_count(o->contained)); } - return sb; } static inline void --
