From bd3801247e50ff1cda48af33345a918240d7d315 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 8 Sep 2016 13:08:08 +0100 Subject: [PATCH] Eo: Make function overrides implicit. Before this commit, function overrides were explicit. That is, you'd have to explicitly state you were overriding a function instead of creating a new one. This made the code a tad more complex, and was also a bit more annoying to use. This commit removes this extra piece of information. This means we now store much less information per function, that will let us further optimise out structures in the future. --- src/benchmarks/eo/eo_bench_eo_do.c | 2 +- src/bin/elementary/test_ui_box.c | 2 +- src/bin/elementary/test_ui_grid.c | 2 +- src/bin/eolian/eo_generator.c | 6 +-- src/lib/elementary/efl_ui_grid.c | 2 +- src/lib/eo/Eo.h | 8 +--- src/lib/eo/eo.c | 48 ++++++++++--------- .../composite_objects_comp.c | 4 +- .../eo/constructors/constructors_mixin.c | 4 +- .../eo/constructors/constructors_simple.c | 6 +-- .../eo/constructors/constructors_simple2.c | 2 +- .../eo/constructors/constructors_simple3.c | 2 +- .../eo/constructors/constructors_simple5.c | 2 +- .../eo/constructors/constructors_simple6.c | 2 +- .../eo/constructors/constructors_simple7.c | 2 +- .../function_overrides_inherit2.c | 4 +- .../function_overrides_inherit3.c | 2 +- src/tests/eo/interface/interface_simple.c | 4 +- src/tests/eo/mixin/mixin_inherit.c | 2 +- src/tests/eo/mixin/mixin_mixin.c | 4 +- src/tests/eo/mixin/mixin_mixin2.c | 6 +-- src/tests/eo/mixin/mixin_mixin3.c | 6 +-- src/tests/eo/signals/signals_simple.c | 2 +- .../eo/suite/eo_test_class_behaviour_errors.c | 2 +- src/tests/eo/suite/eo_test_class_errors.c | 40 ++-------------- src/tests/eo/suite/eo_test_class_simple.c | 4 +- src/tests/eo/suite/eo_test_class_singleton.c | 2 +- src/tests/eo/suite/eo_test_general.c | 12 ++--- src/tests/eolian/data/override_ref.c | 6 +-- 29 files changed, 77 insertions(+), 113 deletions(-) diff --git a/src/benchmarks/eo/eo_bench_eo_do.c b/src/benchmarks/eo/eo_bench_eo_do.c index 0666580a09..d434ab9dad 100644 --- a/src/benchmarks/eo/eo_bench_eo_do.c +++ b/src/benchmarks/eo/eo_bench_eo_do.c @@ -62,7 +62,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_set, _a_set), + EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); return efl_class_functions_set(klass, &ops); diff --git a/src/bin/elementary/test_ui_box.c b/src/bin/elementary/test_ui_box.c index 5e918be4af..99e3e93fdf 100644 --- a/src/bin/elementary/test_ui_box.c +++ b/src/bin/elementary/test_ui_box.c @@ -178,7 +178,7 @@ static void custom_check_cb(void *data, const Efl_Event *event) { EFL_OPS_DEFINE(custom_layout_ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_pack_layout_update, _custom_layout_update)); + EFL_OBJECT_OP_FUNC(efl_pack_layout_update, _custom_layout_update)); Eina_Bool chk = elm_check_selected_get(event->object); Eo *obj = data; diff --git a/src/bin/elementary/test_ui_grid.c b/src/bin/elementary/test_ui_grid.c index def80b148d..6902b01c48 100644 --- a/src/bin/elementary/test_ui_grid.c +++ b/src/bin/elementary/test_ui_grid.c @@ -23,7 +23,7 @@ static Eina_Bool _custom_engine_class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_CLASS_FUNC_OVERRIDE(efl_pack_layout_do, _custom_engine_layout_do), + EFL_OBJECT_OP_CLASS_FUNC(efl_pack_layout_do, _custom_engine_layout_do), ); return efl_class_functions_set(klass, &ops); diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c index 35b0593f6a..c76c7b5f34 100644 --- a/src/bin/eolian/eo_generator.c +++ b/src/bin/eolian/eo_generator.c @@ -822,7 +822,7 @@ eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf) if (ftype != EOLIAN_PROP_GET) { Eina_Stringshare *rets = eolian_function_full_c_name_get(fnid, EOLIAN_PROP_SET, EINA_FALSE); - eina_strbuf_append_printf(str_op, "\n EFL_OBJECT_OP_%sFUNC_OVERRIDE(%s, %s_%s_set),", + eina_strbuf_append_printf(str_op, "\n EFL_OBJECT_OP_%sFUNC(%s, %s_%s_set),", class_str, rets, implname, funcname); eo_bind_func_generate(class, fnid, EOLIAN_PROP_SET, str_bodyf, impl_desc, &impl_env); eina_stringshare_del(rets); @@ -831,7 +831,7 @@ eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf) if (ftype != EOLIAN_PROP_SET) { Eina_Stringshare *rets = eolian_function_full_c_name_get(fnid, EOLIAN_PROP_GET, EINA_FALSE); - eina_strbuf_append_printf(str_op, "\n EFL_OBJECT_OP_%sFUNC_OVERRIDE(%s, %s_%s_get),", + eina_strbuf_append_printf(str_op, "\n EFL_OBJECT_OP_%sFUNC(%s, %s_%s_get),", class_str, rets, implname, funcname); eo_bind_func_generate(class, fnid, EOLIAN_PROP_GET, str_bodyf, impl_desc, &impl_env); eina_stringshare_del(rets); @@ -840,7 +840,7 @@ eo_source_end_generate(const Eolian_Class *class, Eina_Strbuf *buf) default: { Eina_Stringshare *rets = eolian_function_full_c_name_get(fnid, ftype, EINA_FALSE); - eina_strbuf_append_printf(str_op, "\n EFL_OBJECT_OP_%sFUNC_OVERRIDE(%s, %s_%s),", + eina_strbuf_append_printf(str_op, "\n EFL_OBJECT_OP_%sFUNC(%s, %s_%s),", class_str, rets, implname, funcname); eo_bind_func_generate(class, fnid, ftype, str_bodyf, impl_desc, &impl_env); eina_stringshare_del(rets); diff --git a/src/lib/elementary/efl_ui_grid.c b/src/lib/elementary/efl_ui_grid.c index cb72cdff95..3261c29423 100644 --- a/src/lib/elementary/efl_ui_grid.c +++ b/src/lib/elementary/efl_ui_grid.c @@ -169,7 +169,7 @@ static Eina_Bool _custom_table_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_CLASS_FUNC_OVERRIDE(efl_canvas_group_calculate, _custom_table_calc) + EFL_OBJECT_OP_CLASS_FUNC(efl_canvas_group_calculate, _custom_table_calc) ); return efl_class_functions_set(klass, &ops); diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h index f1aabd5cb8..8fd5ca7c93 100644 --- a/src/lib/eo/Eo.h +++ b/src/lib/eo/Eo.h @@ -148,8 +148,6 @@ enum _Efl_Object_Op_Type EFL_OBJECT_OP_TYPE_INVALID = -1, /**< Invalid op. */ EFL_OBJECT_OP_TYPE_REGULAR = 0, /**< Regular op. */ EFL_OBJECT_OP_TYPE_CLASS, /**< Class op - a class op. Like static in Java/C++. */ - EFL_OBJECT_OP_TYPE_REGULAR_OVERRIDE, /**< Regular op override (previously defined) */ - EFL_OBJECT_OP_TYPE_CLASS_OVERRIDE, /**< Class op override (previously defined) */ }; /** @@ -458,11 +456,11 @@ EAPI Eina_Bool efl_object_override(Eo *obj, const Efl_Object_Ops *ops); * @brief Define an array of override functions for @ref efl_object_override * @param ops A name for the Efl_Object_Ops local variable to define * @param ... A comma separated list of Efl_Object_Op overrides, using - * #EFL_OBJECT_OP_FUNC_OVERRIDE or #EFL_OBJECT_OP_CLASS_FUNC_OVERRIDE + * #EFL_OBJECT_OP_FUNC or #EFL_OBJECT_OP_CLASS_FUNC * * This can be used as follows: * @code - * EFL_OPS_DEFINE(ops, EFL_OBJECT_OP_FUNC_OVERRIDE(public_func, _my_func)); + * EFL_OPS_DEFINE(ops, EFL_OBJECT_OP_FUNC(public_func, _my_func)); * efl_object_override(obj, &ops); * @endcode * @@ -848,8 +846,6 @@ typedef struct _Efl_Object_Call_Cache #define EFL_OBJECT_OP_FUNC(_api, _private) { _EFL_OBJECT_OP_API_ENTRY(_api), (void*)_private, EFL_OBJECT_OP_TYPE_REGULAR } #define EFL_OBJECT_OP_CLASS_FUNC(_api, _private) { _EFL_OBJECT_OP_API_ENTRY(_api), (void*)_private, EFL_OBJECT_OP_TYPE_CLASS } -#define EFL_OBJECT_OP_FUNC_OVERRIDE(_api, _private) { _EFL_OBJECT_OP_API_ENTRY(_api), (void*)_private, EFL_OBJECT_OP_TYPE_REGULAR_OVERRIDE } -#define EFL_OBJECT_OP_CLASS_FUNC_OVERRIDE(_api, _private) { _EFL_OBJECT_OP_API_ENTRY(_api), (void*)_private, EFL_OBJECT_OP_TYPE_CLASS_OVERRIDE } // returns the OP id corresponding to the given api_func EAPI Efl_Object_Op _efl_object_api_op_id_get(const void *api_func); diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index bfc5be5d3d..fa8a7f7d51 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -578,8 +578,8 @@ _eo_api_func_equal(const void *api_func1, const void *api_func2) #endif } -EAPI Efl_Object_Op -_efl_object_api_op_id_get(const void *api_func) +static inline Efl_Object_Op +_efl_object_api_op_id_get_internal(const void *api_func) { eina_spinlock_take(&_ops_storage_lock); #ifndef _WIN32 @@ -589,6 +589,14 @@ _efl_object_api_op_id_get(const void *api_func) #endif eina_spinlock_release(&_ops_storage_lock); + return op; +} + +EAPI Efl_Object_Op +_efl_object_api_op_id_get(const void *api_func) +{ + Efl_Object_Op op = _efl_object_api_op_id_get_internal(api_func); + if (op == EFL_NOOP) { ERR("Unable to resolve op for api func %p", api_func); @@ -600,7 +608,7 @@ _efl_object_api_op_id_get(const void *api_func) /* klass is the klass we are working on. hierarchy_klass is the class whe should * use when validating. */ static Eina_Bool -_eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Class *hierarchy_klass, const _Efl_Class *klass, Eina_Bool override_only) +_eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Class *hierarchy_klass, const _Efl_Class *klass, Eina_Bool override_only EINA_UNUSED) { unsigned int i; int op_id; @@ -629,12 +637,6 @@ _eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Cla if ((op_desc->op_type == EFL_OBJECT_OP_TYPE_REGULAR) || (op_desc->op_type == EFL_OBJECT_OP_TYPE_CLASS)) { - if (override_only) - { - ERR("Creation of new functions is not allowed when overriding an object's vtable."); - return EINA_FALSE; - } - if (_eo_api_func_equal(op_desc->api_func, last_api_func)) { ERR("Class '%s': API previously defined (%p->%p '%s').", @@ -642,21 +644,21 @@ _eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Cla return EINA_FALSE; } - op = op_id; - eina_spinlock_take(&_ops_storage_lock); -#ifndef _WIN32 - eina_hash_add(_ops_storage, &op_desc->api_func, (void *) (uintptr_t) op); -#else - eina_hash_add(_ops_storage, op_desc->api_func, (void *) (uintptr_t) op); -#endif - eina_spinlock_release(&_ops_storage_lock); + op = _efl_object_api_op_id_get_internal(op_desc->api_func); - op_id++; - } - else if ((op_desc->op_type == EFL_OBJECT_OP_TYPE_REGULAR_OVERRIDE) || (op_desc->op_type == EFL_OBJECT_OP_TYPE_CLASS_OVERRIDE)) - { - /* We allow any overrides, we don't check if in hierarchy. */ - op = _efl_object_api_op_id_get(op_desc->api_func); + if (op == EFL_NOOP) + { + op = op_id; + eina_spinlock_take(&_ops_storage_lock); +#ifndef _WIN32 + eina_hash_add(_ops_storage, &op_desc->api_func, (void *) (uintptr_t) op); +#else + eina_hash_add(_ops_storage, op_desc->api_func, (void *) (uintptr_t) op); +#endif + eina_spinlock_release(&_ops_storage_lock); + + op_id++; + } } if (op == EFL_NOOP) diff --git a/src/tests/eo/composite_objects/composite_objects_comp.c b/src/tests/eo/composite_objects/composite_objects_comp.c index ee6686da22..f96ee35224 100644 --- a/src/tests/eo/composite_objects/composite_objects_comp.c +++ b/src/tests/eo/composite_objects/composite_objects_comp.c @@ -40,8 +40,8 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_get, _a_get), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/constructors/constructors_mixin.c b/src/tests/eo/constructors/constructors_mixin.c index a68c10bdc1..7911602b38 100644 --- a/src/tests/eo/constructors/constructors_mixin.c +++ b/src/tests/eo/constructors/constructors_mixin.c @@ -42,8 +42,8 @@ _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, EFL_OBJECT_OP_FUNC(mixin_add_and_print, _add_and_print_set), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/constructors/constructors_simple.c b/src/tests/eo/constructors/constructors_simple.c index 62d47d2688..ca6de0c2b2 100644 --- a/src/tests/eo/constructors/constructors_simple.c +++ b/src/tests/eo/constructors/constructors_simple.c @@ -89,9 +89,9 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_finalize, _finalize), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(efl_finalize, _finalize), EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), EFL_OBJECT_OP_FUNC(simple_b_set, _b_set), diff --git a/src/tests/eo/constructors/constructors_simple2.c b/src/tests/eo/constructors/constructors_simple2.c index e97b95fe2d..2cd3e89c3b 100644 --- a/src/tests/eo/constructors/constructors_simple2.c +++ b/src/tests/eo/constructors/constructors_simple2.c @@ -20,7 +20,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/constructors/constructors_simple3.c b/src/tests/eo/constructors/constructors_simple3.c index 8e7bdc59c3..f66dada0e8 100644 --- a/src/tests/eo/constructors/constructors_simple3.c +++ b/src/tests/eo/constructors/constructors_simple3.c @@ -18,7 +18,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/constructors/constructors_simple5.c b/src/tests/eo/constructors/constructors_simple5.c index 86d9167005..21a35495d5 100644 --- a/src/tests/eo/constructors/constructors_simple5.c +++ b/src/tests/eo/constructors/constructors_simple5.c @@ -18,7 +18,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/constructors/constructors_simple6.c b/src/tests/eo/constructors/constructors_simple6.c index ffe99098b7..0bd814426e 100644 --- a/src/tests/eo/constructors/constructors_simple6.c +++ b/src/tests/eo/constructors/constructors_simple6.c @@ -18,7 +18,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/constructors/constructors_simple7.c b/src/tests/eo/constructors/constructors_simple7.c index 815b974afe..54ddd147b9 100644 --- a/src/tests/eo/constructors/constructors_simple7.c +++ b/src/tests/eo/constructors/constructors_simple7.c @@ -22,7 +22,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/function_overrides/function_overrides_inherit2.c b/src/tests/eo/function_overrides/function_overrides_inherit2.c index 0211a8cd21..52105be17b 100644 --- a/src/tests/eo/function_overrides/function_overrides_inherit2.c +++ b/src/tests/eo/function_overrides/function_overrides_inherit2.c @@ -65,8 +65,8 @@ _class_initializer(Efl_Class *klass) EFL_OPS_DEFINE(ops, EFL_OBJECT_OP_FUNC(inherit2_print, _print), EFL_OBJECT_OP_FUNC(inherit2_print2, _print2), - EFL_OBJECT_OP_CLASS_FUNC_OVERRIDE(simple_class_print, _class_print), - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_set, _a_set), + EFL_OBJECT_OP_CLASS_FUNC(simple_class_print, _class_print), + EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/function_overrides/function_overrides_inherit3.c b/src/tests/eo/function_overrides/function_overrides_inherit3.c index 1043a2a93f..7e7cd756ee 100644 --- a/src/tests/eo/function_overrides/function_overrides_inherit3.c +++ b/src/tests/eo/function_overrides/function_overrides_inherit3.c @@ -20,7 +20,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_set, _a_set), + EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/interface/interface_simple.c b/src/tests/eo/interface/interface_simple.c index 433de5ce68..0b5806c9e9 100644 --- a/src/tests/eo/interface/interface_simple.c +++ b/src/tests/eo/interface/interface_simple.c @@ -64,8 +64,8 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), EFL_OBJECT_OP_FUNC(simple_b_set, _b_set), EFL_OBJECT_OP_FUNC(simple_b_get, _b_get), - EFL_OBJECT_OP_FUNC_OVERRIDE(interface_ab_sum_get, _ab_sum_get), - EFL_OBJECT_OP_FUNC_OVERRIDE(interface2_ab_sum_get2, _ab_sum_get2), + EFL_OBJECT_OP_FUNC(interface_ab_sum_get, _ab_sum_get), + EFL_OBJECT_OP_FUNC(interface2_ab_sum_get2, _ab_sum_get2), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/mixin/mixin_inherit.c b/src/tests/eo/mixin/mixin_inherit.c index 5c4503f695..0600823bee 100644 --- a/src/tests/eo/mixin/mixin_inherit.c +++ b/src/tests/eo/mixin/mixin_inherit.c @@ -23,7 +23,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_get, _a_get), + EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/mixin/mixin_mixin.c b/src/tests/eo/mixin/mixin_mixin.c index e5ac3af1a8..4ef198a108 100644 --- a/src/tests/eo/mixin/mixin_mixin.c +++ b/src/tests/eo/mixin/mixin_mixin.c @@ -36,8 +36,8 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), EFL_OBJECT_OP_FUNC(mixin_ab_sum_get, _ab_sum_get), ); diff --git a/src/tests/eo/mixin/mixin_mixin2.c b/src/tests/eo/mixin/mixin_mixin2.c index 38547dab26..e29f7e88ee 100644 --- a/src/tests/eo/mixin/mixin_mixin2.c +++ b/src/tests/eo/mixin/mixin_mixin2.c @@ -50,9 +50,9 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(mixin_ab_sum_get, _ab_sum_get), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(mixin_ab_sum_get, _ab_sum_get), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/mixin/mixin_mixin3.c b/src/tests/eo/mixin/mixin_mixin3.c index 21da5d0cfd..32828734c0 100644 --- a/src/tests/eo/mixin/mixin_mixin3.c +++ b/src/tests/eo/mixin/mixin_mixin3.c @@ -49,9 +49,9 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(mixin_ab_sum_get, _ab_sum_get), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), + EFL_OBJECT_OP_FUNC(mixin_ab_sum_get, _ab_sum_get), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/signals/signals_simple.c b/src/tests/eo/signals/signals_simple.c index 3cd4d946d7..403c1093be 100644 --- a/src/tests/eo/signals/signals_simple.c +++ b/src/tests/eo/signals/signals_simple.c @@ -75,7 +75,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _constructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); diff --git a/src/tests/eo/suite/eo_test_class_behaviour_errors.c b/src/tests/eo/suite/eo_test_class_behaviour_errors.c index fc443fbe8b..49fef3bcd4 100644 --- a/src/tests/eo/suite/eo_test_class_behaviour_errors.c +++ b/src/tests/eo/suite/eo_test_class_behaviour_errors.c @@ -26,7 +26,7 @@ static Eina_Bool _destructor_unref_class_initializer(Efl_Class *klass2) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _destructor_unref), + EFL_OBJECT_OP_FUNC(efl_destructor, _destructor_unref), ); return efl_class_functions_set(klass2, &ops); diff --git a/src/tests/eo/suite/eo_test_class_errors.c b/src/tests/eo/suite/eo_test_class_errors.c index 89ad49be23..0e475b52d4 100644 --- a/src/tests/eo/suite/eo_test_class_errors.c +++ b/src/tests/eo/suite/eo_test_class_errors.c @@ -240,39 +240,6 @@ START_TEST(eo_null_api) } END_TEST -static Eina_Bool -_wrong_override_class_initializer(Efl_Class *klass) -{ - EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(null_fct, _null_fct), - ); - - return efl_class_functions_set(klass, &ops); -} - -START_TEST(eo_wrong_override) -{ - efl_object_init(); - - const Efl_Class *klass; - - static Efl_Class_Description class_desc = { - EO_VERSION, - "Simple", - EFL_CLASS_TYPE_REGULAR, - 0, - _wrong_override_class_initializer, - NULL, - NULL - }; - - klass = efl_class_new(&class_desc, NULL, NULL); - fail_if(klass); - - efl_object_shutdown(); -} -END_TEST - static Eina_Bool _redefined_class_initializer(Efl_Class *klass) { @@ -316,8 +283,8 @@ static Eina_Bool _dich_func_class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_set, _null_fct), - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_set, NULL), + EFL_OBJECT_OP_FUNC(simple_a_set, _null_fct), + EFL_OBJECT_OP_FUNC(simple_a_set, NULL), ); return efl_class_functions_set(klass, &ops); @@ -340,7 +307,7 @@ START_TEST(eo_dich_func_override) NULL }; - TEST_EO_ERROR("_vtable_func_set", "Class '%s': Overriding already set func %p for op %d (%s) with %p."); + TEST_EO_ERROR("_eo_class_funcs_set", "Class '%s': API previously defined (%p->%p '%s')."); klass = efl_class_new(&class_desc, SIMPLE_CLASS, NULL); fail_if(klass); fail_unless(ctx.did); @@ -360,7 +327,6 @@ void eo_test_class_errors(TCase *tc) /* This test is not relevant for WIN32. */ tcase_add_test(tc, eo_null_api); #endif - tcase_add_test(tc, eo_wrong_override); tcase_add_test(tc, eo_api_redefined); tcase_add_test(tc, eo_dich_func_override); } diff --git a/src/tests/eo/suite/eo_test_class_simple.c b/src/tests/eo/suite/eo_test_class_simple.c index 56d424c183..a740e433f2 100644 --- a/src/tests/eo/suite/eo_test_class_simple.c +++ b/src/tests/eo/suite/eo_test_class_simple.c @@ -99,7 +99,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_recursive, _recursive), EFL_OBJECT_OP_FUNC(simple_part_get, _part_get), EFL_OBJECT_OP_FUNC(simple_pure_virtual, NULL), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_dbg_info_get, _dbg_info_get), + EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _dbg_info_get), ); return efl_class_functions_set(klass, &ops); @@ -160,7 +160,7 @@ static Eina_Bool _searchable_class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_provider_find, _interface_get) + EFL_OBJECT_OP_FUNC(efl_provider_find, _interface_get) ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/suite/eo_test_class_singleton.c b/src/tests/eo/suite/eo_test_class_singleton.c index 2702d68a0a..4bed42e2cc 100644 --- a/src/tests/eo/suite/eo_test_class_singleton.c +++ b/src/tests/eo/suite/eo_test_class_singleton.c @@ -29,7 +29,7 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _singleton_efl_constructor), + EFL_OBJECT_OP_FUNC(efl_constructor, _singleton_efl_constructor), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eo/suite/eo_test_general.c b/src/tests/eo/suite/eo_test_general.c index 9be6de54d2..ccc07efd4b 100644 --- a/src/tests/eo/suite/eo_test_general.c +++ b/src/tests/eo/suite/eo_test_general.c @@ -76,7 +76,7 @@ START_TEST(efl_object_override_tests) EFL_OPS_DEFINE( overrides, - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_get, _simple_obj_override_a_get)); + EFL_OBJECT_OP_FUNC(simple_a_get, _simple_obj_override_a_get)); fail_if(!efl_object_override(obj, &overrides)); ck_assert_int_eq(simple_a_get(obj), OVERRIDE_A); @@ -88,7 +88,7 @@ START_TEST(efl_object_override_tests) /* Override again. */ EFL_OPS_DEFINE( overrides2, - EFL_OBJECT_OP_FUNC_OVERRIDE(simple_a_set, _simple_obj_override_a_double_set)); + EFL_OBJECT_OP_FUNC(simple_a_set, _simple_obj_override_a_double_set)); fail_if(!efl_object_override(obj, NULL)); fail_if(!efl_object_override(obj, &overrides2)); @@ -104,7 +104,7 @@ START_TEST(efl_object_override_tests) overrides3, EFL_OBJECT_OP_FUNC(simple2_class_beef_get, _simple_obj_override_a_double_set)); fail_if(!efl_object_override(obj, NULL)); - fail_if(efl_object_override(obj, &overrides3)); + fail_if(!efl_object_override(obj, &overrides3)); /* Test override reset */ fail_if(!efl_object_override(obj, NULL)); @@ -432,8 +432,8 @@ static Eina_Bool _class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_constructor, _man_con), - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_destructor, _man_des), + EFL_OBJECT_OP_FUNC(efl_constructor, _man_con), + EFL_OBJECT_OP_FUNC(efl_destructor, _man_des), ); return efl_class_functions_set(klass, &ops); @@ -1166,7 +1166,7 @@ static Eina_Bool _add_failures_class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(efl_finalize, _efl_add_failures_finalize), + EFL_OBJECT_OP_FUNC(efl_finalize, _efl_add_failures_finalize), ); return efl_class_functions_set(klass, &ops); diff --git a/src/tests/eolian/data/override_ref.c b/src/tests/eolian/data/override_ref.c index 3a77e8ce71..f54b9dc729 100644 --- a/src/tests/eolian/data/override_ref.c +++ b/src/tests/eolian/data/override_ref.c @@ -57,9 +57,9 @@ static Eina_Bool _override_class_initializer(Efl_Class *klass) { EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_FUNC_OVERRIDE(base_constructor, _override_base_constructor), - EFL_OBJECT_OP_FUNC_OVERRIDE(base_z_get, __eolian_override_base_z_get), - EFL_OBJECT_OP_FUNC_OVERRIDE(base_z_set, __eolian_override_base_z_set), + EFL_OBJECT_OP_FUNC(base_constructor, _override_base_constructor), + EFL_OBJECT_OP_FUNC(base_z_get, __eolian_override_base_z_get), + EFL_OBJECT_OP_FUNC(base_z_set, __eolian_override_base_z_set), EFL_OBJECT_OP_FUNC(override_b_set, __eolian_override_b_set), EFL_OBJECT_OP_FUNC(override_bar, __eolian_override_bar), EFL_OBJECT_OP_FUNC(override_c_get, __eolian_override_c_get),