q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=45e6a3e86aa1fd7c89cecd975bcf8125cd69d87d

commit 45e6a3e86aa1fd7c89cecd975bcf8125cd69d87d
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Mon Jan 2 16:09:04 2017 +0100

    eolian: disallow duplicate implements
---
 src/lib/elementary/efl_ui_text.eo |  6 ++----
 src/lib/elementary/efl_ui_win.eo  |  3 +--
 src/lib/elementary/elm_entry.eo   |  6 ++----
 src/lib/eolian/database_fill.c    | 16 ++++++++++++++--
 4 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/src/lib/elementary/efl_ui_text.eo 
b/src/lib/elementary/efl_ui_text.eo
index 06c8f29..4ab6700 100644
--- a/src/lib/elementary/efl_ui_text.eo
+++ b/src/lib/elementary/efl_ui_text.eo
@@ -416,11 +416,10 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, 
Efl.Ui.Clickable,
       Elm.Widget.focus_next_manager_is;
       Elm.Layout.theme_enable;
       Elm.Layout.sizing_eval;
-      Elm.Layout.text { get; }
+      Elm.Layout.text { get; set; }
       Elm.Layout.signal_callback_add;
       Elm.Layout.signal_callback_del;
       Elm.Layout.signal_emit;
-      Elm.Layout.text { set; }
       Elm.Layout.content_aliases { get; }
       Elm.Interface_Scrollable.policy { set; }
       Elm.Interface_Scrollable.bounce_allow { set; }
@@ -438,11 +437,10 @@ class Efl.Ui.Text (Elm.Layout, Elm.Interface_Scrollable, 
Efl.Ui.Clickable,
       Elm.Interface.Atspi.Text.offset_at_point { get; }
       Elm.Interface.Atspi.Text.bounded_ranges { get; }
       Elm.Interface.Atspi.Text.range_extents { get; }
-      Elm.Interface.Atspi.Text.selection { get; }
+      Elm.Interface.Atspi.Text.selection { get; set; }
       Elm.Interface.Atspi.Text.selections_count { get; }
       Elm.Interface.Atspi.Text.selection_add;
       Elm.Interface.Atspi.Text.selection_remove;
-      Elm.Interface.Atspi.Text.selection { set; }
       Elm.Interface.Atspi.Text.Editable.content { set; }
       Elm.Interface.Atspi.Text.Editable.insert;
       Elm.Interface.Atspi.Text.Editable.copy;
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index b401441..007aeb5 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -963,8 +963,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, 
Elm.Interface.Atspi.Window,
       Efl.Canvas.object_top_at_xy_get;
       Efl.Canvas.objects_in_rectangle_get;
       Efl.Canvas.object_top_in_rectangle_get;
-      Efl.Container.content { set; }
-      Efl.Container.content { get; }
+      Efl.Container.content { get; set; }
       Efl.Container.content_unset;
       Efl.Part.part;
    }
diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo
index 95f5bc7..77c3b16 100644
--- a/src/lib/elementary/elm_entry.eo
+++ b/src/lib/elementary/elm_entry.eo
@@ -957,11 +957,10 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, 
Efl.Ui.Clickable,
       Elm.Widget.focus_next_manager_is;
       Elm.Layout.theme_enable;
       Elm.Layout.sizing_eval;
-      Elm.Layout.text { get; }
+      Elm.Layout.text { get; set; }
       Elm.Layout.signal_callback_add;
       Elm.Layout.signal_callback_del;
       Elm.Layout.signal_emit;
-      Elm.Layout.text { set; }
       Elm.Layout.content_aliases { get; }
       Elm.Interface_Scrollable.policy { set; }
       Elm.Interface_Scrollable.bounce_allow { set; }
@@ -979,11 +978,10 @@ class Elm.Entry (Elm.Layout, Elm.Interface_Scrollable, 
Efl.Ui.Clickable,
       Elm.Interface.Atspi.Text.offset_at_point { get; }
       Elm.Interface.Atspi.Text.bounded_ranges { get; }
       Elm.Interface.Atspi.Text.range_extents { get; }
-      Elm.Interface.Atspi.Text.selection { get; }
+      Elm.Interface.Atspi.Text.selection { get; set; }
       Elm.Interface.Atspi.Text.selections_count { get; }
       Elm.Interface.Atspi.Text.selection_add;
       Elm.Interface.Atspi.Text.selection_remove;
-      Elm.Interface.Atspi.Text.selection { set; }
       Elm.Interface.Atspi.Text.Editable.content { set; }
       Elm.Interface.Atspi.Text.Editable.insert;
       Elm.Interface.Atspi.Text.Editable.copy;
diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c
index d380cc7..6ffa93b 100644
--- a/src/lib/eolian/database_fill.c
+++ b/src/lib/eolian/database_fill.c
@@ -190,9 +190,21 @@ _db_fill_implements(Eolian_Class *cl)
    Eolian_Function *foo_id;
    Eina_List *l;
 
+   Eina_Hash *th = eina_hash_string_small_new(NULL);
    EINA_LIST_FOREACH(cl->implements, l, impl)
-     if (!_db_fill_implement(cl, impl))
-       return EINA_FALSE;
+     {
+        if (eina_hash_find(th, impl->full_name))
+          {
+             fprintf(stderr, "eolian:%s:%d:%d: duplicate implement '%s'\n",
+                     impl->base.file, impl->base.line, impl->base.column,
+                     impl->full_name);
+             return EINA_FALSE;
+          }
+        if (!_db_fill_implement(cl, impl))
+          return EINA_FALSE;
+        eina_hash_add(th, impl->full_name, impl->full_name);
+     }
+   eina_hash_free(th);
 
    EINA_LIST_FOREACH(cl->properties, l, foo_id)
      _db_build_implement(cl, foo_id);

-- 


Reply via email to