From 45e6a3e86aa1fd7c89cecd975bcf8125cd69d87d Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 2 Jan 2017 16:09:04 +0100 Subject: [PATCH] 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 06c8f29f9d..4ab6700fd7 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 b4014414e6..007aeb5fdc 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 95f5bc7f03..77c3b1658f 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 d380cc70a7..6ffa93b6d8 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);