From 7ebf9d879d41169beda06b0195e4a3b3c60818e1 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Fri, 9 Sep 2016 10:53:58 +0100 Subject: [PATCH] Eo: Change the way functions are registered to classes This change lets us remove a field from the structure that leads to around 20KiB more of saving in private dirty pages in elementary. This also looks a bit better and feels a bit cleaner. Breaks API and ABI. --- src/benchmarks/eo/class_simple.c | 2 +- src/benchmarks/eo/eo_bench_eo_do.c | 2 +- src/bin/elementary/test_ui_grid.c | 6 ++-- src/lib/elementary/efl_ui_grid.c | 6 ++-- src/lib/eo/Eo.h | 27 +++------------- src/lib/eo/eo.c | 36 +++++++++++----------- src/tests/eo/access/access_inherit.c | 2 +- src/tests/eo/access/access_simple.c | 2 +- .../eo/composite_objects/composite_objects_comp.c | 2 +- .../composite_objects/composite_objects_simple.c | 2 +- src/tests/eo/constructors/constructors_mixin.c | 2 +- src/tests/eo/constructors/constructors_simple.c | 4 +-- src/tests/eo/constructors/constructors_simple2.c | 2 +- src/tests/eo/constructors/constructors_simple3.c | 2 +- src/tests/eo/constructors/constructors_simple5.c | 2 +- src/tests/eo/constructors/constructors_simple6.c | 2 +- src/tests/eo/constructors/constructors_simple7.c | 2 +- .../function_overrides_inherit2.c | 6 ++-- .../function_overrides_inherit3.c | 2 +- .../function_overrides/function_overrides_simple.c | 2 +- src/tests/eo/interface/interface_interface.c | 2 +- src/tests/eo/interface/interface_interface2.c | 2 +- src/tests/eo/interface/interface_simple.c | 2 +- src/tests/eo/mixin/mixin_inherit.c | 2 +- src/tests/eo/mixin/mixin_mixin.c | 2 +- src/tests/eo/mixin/mixin_mixin2.c | 2 +- src/tests/eo/mixin/mixin_mixin3.c | 2 +- src/tests/eo/mixin/mixin_simple.c | 2 +- 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 | 6 ++-- src/tests/eo/suite/eo_test_class_simple.c | 14 +++++---- src/tests/eo/suite/eo_test_class_singleton.c | 2 +- src/tests/eo/suite/eo_test_domain.c | 2 +- src/tests/eo/suite/eo_test_general.c | 6 ++-- src/tests/eo/suite/eo_test_threaded_calls.c | 2 +- src/tests/eolian/data/class_simple_ref.c | 4 +-- src/tests/eolian/data/override_ref.c | 4 +-- 38 files changed, 79 insertions(+), 94 deletions(-) diff --git a/src/benchmarks/eo/class_simple.c b/src/benchmarks/eo/class_simple.c index 75f8eb0..63378d6 100644 --- a/src/benchmarks/eo/class_simple.c +++ b/src/benchmarks/eo/class_simple.c @@ -38,7 +38,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_other_call, _other_call), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/benchmarks/eo/eo_bench_eo_do.c b/src/benchmarks/eo/eo_bench_eo_do.c index d434ab9..ec69bf3 100644 --- a/src/benchmarks/eo/eo_bench_eo_do.c +++ b/src/benchmarks/eo/eo_bench_eo_do.c @@ -65,7 +65,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static void diff --git a/src/bin/elementary/test_ui_grid.c b/src/bin/elementary/test_ui_grid.c index 6902b01..ecc9720 100644 --- a/src/bin/elementary/test_ui_grid.c +++ b/src/bin/elementary/test_ui_grid.c @@ -22,11 +22,11 @@ static void _custom_engine_layout_do(Eo *obj, void *pd, Efl_Pack *pack, const vo static Eina_Bool _custom_engine_class_initializer(Efl_Class *klass) { - EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_CLASS_FUNC(efl_pack_layout_do, _custom_engine_layout_do), + EFL_OPS_DEFINE(class_ops, + EFL_OBJECT_OP_FUNC(efl_pack_layout_do, _custom_engine_layout_do), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, NULL, &class_ops); } static const Efl_Class_Description custom_engine_class_desc = { diff --git a/src/lib/elementary/efl_ui_grid.c b/src/lib/elementary/efl_ui_grid.c index 3261c29..4e0a843 100644 --- a/src/lib/elementary/efl_ui_grid.c +++ b/src/lib/elementary/efl_ui_grid.c @@ -168,11 +168,11 @@ static void _custom_table_calc(Eo *obj, Custom_Table_Data *pd); static Eina_Bool _custom_table_initializer(Efl_Class *klass) { - EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_CLASS_FUNC(efl_canvas_group_calculate, _custom_table_calc) + EFL_OPS_DEFINE(class_ops, + EFL_OBJECT_OP_FUNC(efl_canvas_group_calculate, _custom_table_calc) ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, NULL, &class_ops); }; static const Efl_Class_Description custom_table_class_desc = { diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h index f1ce4c1..a7325ac 100644 --- a/src/lib/eo/Eo.h +++ b/src/lib/eo/Eo.h @@ -140,24 +140,6 @@ EAPI extern Eina_Lock _efl_class_creation_lock; EAPI extern unsigned int _efl_object_init_generation; /** - * @internal - * An enum representing the possible types of an Op. - */ -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++. */ -}; - -/** - * @internal - * @typedef Efl_Object_Op_Type - * A convenience typedef for #_Efl_Object_Op_Type. - */ -typedef enum _Efl_Object_Op_Type Efl_Object_Op_Type; - -/** * @typedef Efl_Del_Intercept * * A function to be called on object deletion/destruction instead of normal @@ -374,7 +356,6 @@ typedef struct _Efl_Op_Description { void *api_func; /**< The EAPI function offering this op. (The name of the func on windows) */ void *func; /**< The static function to call for the op. */ - Efl_Object_Op_Type op_type; /**< The type of the Op. */ } Efl_Op_Description; /** @@ -427,14 +408,15 @@ EAPI const Efl_Class *efl_class_new(const Efl_Class_Description *desc, const Efl /** * @brief Set the functions of a class * @param klass_id the class whose functions we are setting. - * @param ops The function structure we are setting. + * @param object_ops The function structure we are setting for object functions + * @param class_ops The function structure we are setting for class functions * @return True on success, False otherwise. * * This should only be called from within the initializer function. * * @see #EFL_DEFINE_CLASS */ -EAPI Eina_Bool efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *ops); +EAPI Eina_Bool efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *object_ops, const Efl_Object_Ops *class_ops); /** * @brief Override Eo functions of this object. @@ -850,8 +832,7 @@ typedef struct _Efl_Object_Call_Cache # define _EFL_OBJECT_OP_API_ENTRY(a) #a #endif -#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(_api, _private) { _EFL_OBJECT_OP_API_ENTRY(_api), (void*)_private } // 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 08d2bb6..9b09835 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -608,15 +608,15 @@ _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 EINA_UNUSED) +_eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Class *hierarchy_klass, const _Efl_Class *klass, Efl_Object_Op id_offset, Eina_Bool override_only) { unsigned int i; - int op_id; + Efl_Object_Op op_id; const void *last_api_func; const Efl_Op_Description *op_desc; const Efl_Op_Description *op_descs; - op_id = hierarchy_klass->base_id; + op_id = hierarchy_klass->base_id + id_offset; op_descs = ops->descs; DBG("Set functions for class '%s':%p", klass->desc->name, klass); @@ -635,7 +635,7 @@ _eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Cla return EINA_FALSE; } - if ((op_desc->op_type == EFL_OBJECT_OP_TYPE_REGULAR) || (op_desc->op_type == EFL_OBJECT_OP_TYPE_CLASS)) + /* Get the opid for the function. */ { if (_eo_api_func_equal(op_desc->api_func, last_api_func)) { @@ -667,13 +667,6 @@ _eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Cla } } - if (op == EFL_NOOP) - { - ERR("Class '%s': Invalid op 'EFL_NOOP' (%p->%p '%s').", - klass->desc->name, op_desc->api_func, op_desc->func, _eo_op_desc_name_get(op_desc)); - return EINA_FALSE; - } - DBG("%p->%p '%s'", op_desc->api_func, op_desc->func, _eo_op_desc_name_get(op_desc)); if (!_vtable_func_set(vtable, klass, op, op_desc->func)) @@ -686,10 +679,11 @@ _eo_class_funcs_set(Eo_Vtable *vtable, const Efl_Object_Ops *ops, const _Efl_Cla } EAPI Eina_Bool -efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *ops) +efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *object_ops, const Efl_Object_Ops *class_ops) { EO_CLASS_POINTER_RETURN_VAL(klass_id, klass, EINA_FALSE); Efl_Object_Ops empty_ops = { 0 }; + if (klass->functions_set) { ERR("Class %s already had its functions set..", klass->desc->name); @@ -697,12 +691,17 @@ efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *ops) } klass->functions_set = EINA_TRUE; - if (!ops) + if (!object_ops) + { + object_ops = &empty_ops; + } + + if (!class_ops) { - ops = &empty_ops; + class_ops = &empty_ops; } - klass->ops_count = ops->count; + klass->ops_count = object_ops->count + class_ops->count; klass->base_id = _eo_ops_last_id; _eo_ops_last_id += klass->ops_count + 1; @@ -723,7 +722,8 @@ efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *ops) } } - return _eo_class_funcs_set(&klass->vtable, ops, klass, klass, EINA_FALSE); + return _eo_class_funcs_set(&klass->vtable, object_ops, klass, klass, 0, EINA_FALSE) && + _eo_class_funcs_set(&klass->vtable, class_ops, klass, klass, object_ops->count, EINA_FALSE); } EAPI Eo * @@ -1374,7 +1374,7 @@ efl_class_new(const Efl_Class_Description *desc, const Efl_Class *parent_id, ... /* If functions haven't been set, invoke it with an empty ops structure. */ if (!klass->functions_set) { - efl_class_functions_set(_eo_class_id_get(klass), NULL); + efl_class_functions_set(_eo_class_id_get(klass), NULL, NULL); } /* Mark which classes we implement */ @@ -1437,7 +1437,7 @@ efl_object_override(Eo *eo_id, const Efl_Object_Ops *ops) return EINA_FALSE; } - if (!_eo_class_funcs_set(obj->vtable, ops, obj->klass, klass, EINA_TRUE)) + if (!_eo_class_funcs_set(obj->vtable, ops, obj->klass, klass, 0, EINA_TRUE)) { ERR("Failed to override functions for %p", eo_id); return EINA_FALSE; diff --git a/src/tests/eo/access/access_inherit.c b/src/tests/eo/access/access_inherit.c index 7192901..2f830bd 100644 --- a/src/tests/eo/access/access_inherit.c +++ b/src/tests/eo/access/access_inherit.c @@ -25,7 +25,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(inherit_prot_print, _prot_print), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/access/access_simple.c b/src/tests/eo/access/access_simple.c index f296834..5b75d0c 100644 --- a/src/tests/eo/access/access_simple.c +++ b/src/tests/eo/access/access_simple.c @@ -39,7 +39,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/composite_objects/composite_objects_comp.c b/src/tests/eo/composite_objects/composite_objects_comp.c index f96ee35..b0b271d 100644 --- a/src/tests/eo/composite_objects/composite_objects_comp.c +++ b/src/tests/eo/composite_objects/composite_objects_comp.c @@ -44,7 +44,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/composite_objects/composite_objects_simple.c b/src/tests/eo/composite_objects/composite_objects_simple.c index a377af3..b9bc70f 100644 --- a/src/tests/eo/composite_objects/composite_objects_simple.c +++ b/src/tests/eo/composite_objects/composite_objects_simple.c @@ -172,7 +172,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_mixin.c b/src/tests/eo/constructors/constructors_mixin.c index 7911602..c3cbdc5 100644 --- a/src/tests/eo/constructors/constructors_mixin.c +++ b/src/tests/eo/constructors/constructors_mixin.c @@ -46,7 +46,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_simple.c b/src/tests/eo/constructors/constructors_simple.c index ca6de0c..cdce5d1 100644 --- a/src/tests/eo/constructors/constructors_simple.c +++ b/src/tests/eo/constructors/constructors_simple.c @@ -95,10 +95,10 @@ _class_initializer(Efl_Class *klass) 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), - EFL_OBJECT_OP_FUNC(simple_b_get, _b_get), + EFL_OBJECT_OP_FUNC(simple_b_get, _b_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_simple2.c b/src/tests/eo/constructors/constructors_simple2.c index 2cd3e89..71f8ae1 100644 --- a/src/tests/eo/constructors/constructors_simple2.c +++ b/src/tests/eo/constructors/constructors_simple2.c @@ -23,7 +23,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_simple3.c b/src/tests/eo/constructors/constructors_simple3.c index f66dada..7bab6da 100644 --- a/src/tests/eo/constructors/constructors_simple3.c +++ b/src/tests/eo/constructors/constructors_simple3.c @@ -21,7 +21,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_simple5.c b/src/tests/eo/constructors/constructors_simple5.c index 21a3549..73bc8fe 100644 --- a/src/tests/eo/constructors/constructors_simple5.c +++ b/src/tests/eo/constructors/constructors_simple5.c @@ -21,7 +21,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_simple6.c b/src/tests/eo/constructors/constructors_simple6.c index 0bd8144..021f1f9 100644 --- a/src/tests/eo/constructors/constructors_simple6.c +++ b/src/tests/eo/constructors/constructors_simple6.c @@ -21,7 +21,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_destructor, _destructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/constructors/constructors_simple7.c b/src/tests/eo/constructors/constructors_simple7.c index 54ddd14..22c6537 100644 --- a/src/tests/eo/constructors/constructors_simple7.c +++ b/src/tests/eo/constructors/constructors_simple7.c @@ -25,7 +25,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_constructor, _constructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/function_overrides/function_overrides_inherit2.c b/src/tests/eo/function_overrides/function_overrides_inherit2.c index 52105be..71732fe 100644 --- a/src/tests/eo/function_overrides/function_overrides_inherit2.c +++ b/src/tests/eo/function_overrides/function_overrides_inherit2.c @@ -65,11 +65,13 @@ _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(simple_class_print, _class_print), EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); + EFL_OPS_DEFINE(cops, + EFL_OBJECT_OP_FUNC(simple_class_print, _class_print), + ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, &cops); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/function_overrides/function_overrides_inherit3.c b/src/tests/eo/function_overrides/function_overrides_inherit3.c index 7e7cd75..e3f3407 100644 --- a/src/tests/eo/function_overrides/function_overrides_inherit3.c +++ b/src/tests/eo/function_overrides/function_overrides_inherit3.c @@ -23,7 +23,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/function_overrides/function_overrides_simple.c b/src/tests/eo/function_overrides/function_overrides_simple.c index 9477e7d..fbd5681 100644 --- a/src/tests/eo/function_overrides/function_overrides_simple.c +++ b/src/tests/eo/function_overrides/function_overrides_simple.c @@ -66,7 +66,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_class_print2, _class_print2), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/interface/interface_interface.c b/src/tests/eo/interface/interface_interface.c index deac3af..dd5b293 100644 --- a/src/tests/eo/interface/interface_interface.c +++ b/src/tests/eo/interface/interface_interface.c @@ -17,7 +17,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(interface_ab_sum_get, NULL), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/interface/interface_interface2.c b/src/tests/eo/interface/interface_interface2.c index 6cbc0b8..4b18105 100644 --- a/src/tests/eo/interface/interface_interface2.c +++ b/src/tests/eo/interface/interface_interface2.c @@ -18,7 +18,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(interface2_ab_sum_get2, NULL), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/interface/interface_simple.c b/src/tests/eo/interface/interface_simple.c index 0b5806c..0d20eea 100644 --- a/src/tests/eo/interface/interface_simple.c +++ b/src/tests/eo/interface/interface_simple.c @@ -68,7 +68,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(interface2_ab_sum_get2, _ab_sum_get2), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/mixin/mixin_inherit.c b/src/tests/eo/mixin/mixin_inherit.c index 0600823..964fbe2 100644 --- a/src/tests/eo/mixin/mixin_inherit.c +++ b/src/tests/eo/mixin/mixin_inherit.c @@ -26,7 +26,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/mixin/mixin_mixin.c b/src/tests/eo/mixin/mixin_mixin.c index 4ef198a..06bff56 100644 --- a/src/tests/eo/mixin/mixin_mixin.c +++ b/src/tests/eo/mixin/mixin_mixin.c @@ -41,7 +41,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(mixin_ab_sum_get, _ab_sum_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/mixin/mixin_mixin2.c b/src/tests/eo/mixin/mixin_mixin2.c index e29f7e8..48ea26a 100644 --- a/src/tests/eo/mixin/mixin_mixin2.c +++ b/src/tests/eo/mixin/mixin_mixin2.c @@ -55,7 +55,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(mixin_ab_sum_get, _ab_sum_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/mixin/mixin_mixin3.c b/src/tests/eo/mixin/mixin_mixin3.c index 3282873..8036249 100644 --- a/src/tests/eo/mixin/mixin_mixin3.c +++ b/src/tests/eo/mixin/mixin_mixin3.c @@ -54,7 +54,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(mixin_ab_sum_get, _ab_sum_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/mixin/mixin_simple.c b/src/tests/eo/mixin/mixin_simple.c index 8322d31..9bc8435 100644 --- a/src/tests/eo/mixin/mixin_simple.c +++ b/src/tests/eo/mixin/mixin_simple.c @@ -47,7 +47,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_b_get, _b_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/signals/signals_simple.c b/src/tests/eo/signals/signals_simple.c index 403c109..9449c3f 100644 --- a/src/tests/eo/signals/signals_simple.c +++ b/src/tests/eo/signals/signals_simple.c @@ -79,7 +79,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { 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 49fef3b..43d72d4 100644 --- a/src/tests/eo/suite/eo_test_class_behaviour_errors.c +++ b/src/tests/eo/suite/eo_test_class_behaviour_errors.c @@ -29,7 +29,7 @@ _destructor_unref_class_initializer(Efl_Class *klass2) EFL_OBJECT_OP_FUNC(efl_destructor, _destructor_unref), ); - return efl_class_functions_set(klass2, &ops); + return efl_class_functions_set(klass2, &ops, NULL); } START_TEST(efl_destructor_unref) diff --git a/src/tests/eo/suite/eo_test_class_errors.c b/src/tests/eo/suite/eo_test_class_errors.c index 0e475b5..ef15c99 100644 --- a/src/tests/eo/suite/eo_test_class_errors.c +++ b/src/tests/eo/suite/eo_test_class_errors.c @@ -209,7 +209,7 @@ _null_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(NULL, _null_fct), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } START_TEST(eo_null_api) @@ -248,7 +248,7 @@ _redefined_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(null_fct, NULL), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } START_TEST(eo_api_redefined) @@ -287,7 +287,7 @@ _dich_func_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_set, NULL), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } START_TEST(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 a740e43..56620c6 100644 --- a/src/tests/eo/suite/eo_test_class_simple.c +++ b/src/tests/eo/suite/eo_test_class_simple.c @@ -95,14 +95,16 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(simple_a_set, _a_set), EFL_OBJECT_OP_FUNC(simple_a_get, _a_get), EFL_OBJECT_OP_FUNC(simple_a_print, _a_print), - EFL_OBJECT_OP_CLASS_FUNC(simple_class_hi_print, _class_hi_print), 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(efl_dbg_info_get, _dbg_info_get), ); + EFL_OPS_DEFINE(cops, + EFL_OBJECT_OP_FUNC(simple_class_hi_print, _class_hi_print), + ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, &cops); } static const Efl_Class_Description class_desc = { @@ -129,11 +131,11 @@ EFL_FUNC_BODY_CONST(simple2_class_beef_get, int, 0); static Eina_Bool _class_initializer2(Efl_Class *klass) { - EFL_OPS_DEFINE(ops, - EFL_OBJECT_OP_CLASS_FUNC(simple2_class_beef_get, _beef_get), + EFL_OPS_DEFINE(cops, + EFL_OBJECT_OP_FUNC(simple2_class_beef_get, _beef_get), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, NULL, &cops); } static const Efl_Class_Description class_desc2 = { @@ -163,7 +165,7 @@ _searchable_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_provider_find, _interface_get) ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc_searchable = { diff --git a/src/tests/eo/suite/eo_test_class_singleton.c b/src/tests/eo/suite/eo_test_class_singleton.c index 4bed42e..e5db1ff 100644 --- a/src/tests/eo/suite/eo_test_class_singleton.c +++ b/src/tests/eo/suite/eo_test_class_singleton.c @@ -32,7 +32,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_constructor, _singleton_efl_constructor), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/suite/eo_test_domain.c b/src/tests/eo/suite/eo_test_domain.c index 6f88e59..45a1fe3 100644 --- a/src/tests/eo/suite/eo_test_domain.c +++ b/src/tests/eo/suite/eo_test_domain.c @@ -65,7 +65,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(domain_a_get, _a_get), EFL_OBJECT_OP_FUNC(domain_recursive, _recursive) ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eo/suite/eo_test_general.c b/src/tests/eo/suite/eo_test_general.c index 1676faf..7341833 100644 --- a/src/tests/eo/suite/eo_test_general.c +++ b/src/tests/eo/suite/eo_test_general.c @@ -436,7 +436,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_destructor, _man_des), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } START_TEST(eo_man_free) @@ -990,7 +990,7 @@ _multi_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(multi_class_hi_print, _class_hi_print), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } START_TEST(eo_multiple_do) @@ -1169,7 +1169,7 @@ _add_failures_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_finalize, _efl_add_failures_finalize), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } START_TEST(efl_add_failures) diff --git a/src/tests/eo/suite/eo_test_threaded_calls.c b/src/tests/eo/suite/eo_test_threaded_calls.c index e707fc0..aea925e 100644 --- a/src/tests/eo/suite/eo_test_threaded_calls.c +++ b/src/tests/eo/suite/eo_test_threaded_calls.c @@ -69,7 +69,7 @@ _class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(thread_test_try_swap_stack, _try_swap_stack), ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description class_desc = { diff --git a/src/tests/eolian/data/class_simple_ref.c b/src/tests/eolian/data/class_simple_ref.c index cd075e1..290aaa0 100644 --- a/src/tests/eolian/data/class_simple_ref.c +++ b/src/tests/eolian/data/class_simple_ref.c @@ -34,7 +34,7 @@ _class_simple_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_canvas_object_simple_foo, __eolian_class_simple_foo) ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description _class_simple_class_desc = { @@ -47,4 +47,4 @@ static const Efl_Class_Description _class_simple_class_desc = { NULL }; -EFL_DEFINE_CLASS(class_simple_class_get, &_class_simple_class_desc, NULL, NULL); \ No newline at end of file +EFL_DEFINE_CLASS(class_simple_class_get, &_class_simple_class_desc, NULL, NULL); diff --git a/src/tests/eolian/data/override_ref.c b/src/tests/eolian/data/override_ref.c index f54b9dc..31994cd 100644 --- a/src/tests/eolian/data/override_ref.c +++ b/src/tests/eolian/data/override_ref.c @@ -70,7 +70,7 @@ _override_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(override_foo, NULL) ); - return efl_class_functions_set(klass, &ops); + return efl_class_functions_set(klass, &ops, NULL); } static const Efl_Class_Description _override_class_desc = { @@ -83,4 +83,4 @@ static const Efl_Class_Description _override_class_desc = { NULL }; -EFL_DEFINE_CLASS(override_class_get, &_override_class_desc, BASE_CLASS, NULL); \ No newline at end of file +EFL_DEFINE_CLASS(override_class_get, &_override_class_desc, BASE_CLASS, NULL); -- 2.7.4