tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7ebf9d879d41169beda06b0195e4a3b3c60818e1

commit 7ebf9d879d41169beda06b0195e4a3b3c60818e1
Author: Tom Hacohen <t...@stosb.com>
Date:   Fri Sep 9 10:53:58 2016 +0100

    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);

-- 


Reply via email to