eo: Simplify debug_name_override
authorJean-Philippe Andre <jp.andre@samsung.com>
Fri, 13 Oct 2017 01:54:54 +0000 (10:54 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Fri, 13 Oct 2017 01:57:00 +0000 (10:57 +0900)
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
src/lib/elementary/efl_ui_win.c
src/lib/elementary/elm_widget.c
src/lib/eo/efl_object.eo
src/lib/eo/eo.c
src/lib/eo/eo_base_class.c
src/lib/evas/canvas/evas_name.c
src/lib/evas/canvas/evas_object_image.c
src/lib/evas/canvas/evas_object_smart.c

index b660d35..7515d0a 100644 (file)
@@ -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
index d3ef9f3..bc66ece 100644 (file)
@@ -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*
index f054bf6..5d5dc62 100644 (file)
@@ -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
index db634ea..b159508 100644 (file)
@@ -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 {
index 2d4fb78..f567ab7 100644 (file)
@@ -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;
      }
index 72171fb..7b6f915 100644 (file)
@@ -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
index 798dd8a..7c432e8 100644 (file)
@@ -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;
 }
index ebdb038..9c464ac 100644 (file)
@@ -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 \
index 411bbef..bbc9735 100644 (file)
@@ -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