From: Jean-Philippe Andre Date: Fri, 13 Oct 2017 01:54:54 +0000 (+0900) Subject: eo: Simplify debug_name_override X-Git-Tag: submit/sandbox/upgrade/efl120/20180319.053334~2265 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ccee1c0944bedf6c81cf40d0b3bcf42cd18cec66;p=platform%2Fupstream%2Fefl.git 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 --- diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index b660d35..7515d0a 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 d3ef9f3..bc66ece 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 f054bf6..5d5dc62 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 db634ea..b159508 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 2d4fb78..f567ab7 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 72171fb..7b6f915 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 798dd8a..7c432e8 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 ebdb038..9c464ac 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 411bbef..bbc9735 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