diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h index f917c8e063..e2c29f11b0 100644 --- a/src/lib/eo/Eo.h +++ b/src/lib/eo/Eo.h @@ -612,10 +612,6 @@ EAPI Eina_Bool eo_shutdown(void); // An helper macro to help populating #Eo_Class_Description. #define EO2_CLASS_DESCRIPTION_OPS(op_descs) { NULL, NULL, op_descs, EO2_OP_DESC_SIZE(op_descs) } -// sort Eo2_Op_Description[] by eapi_func then attribute OP ids -EAPI void -eo2_class_funcs_set(Eo_Class *klass_id); - // to fetch internal function and object data at once typedef struct _Eo2_Op_Call_Data { diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index c18f8a31eb..8cc8bb36a1 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -485,16 +485,13 @@ eo2_api_funcs_cmp(const void *p1, const void *p2) } EAPI void -eo2_class_funcs_set(Eo_Class *klass_id) +_eo2_class_funcs_set(_Eo_Class *klass) { int op_id; - _Eo_Class *klass; const Eo2_Op_Description *api_desc; Eo2_Op_Description *op_desc; Eo2_Op_Description *op_descs; - klass = _eo_class_pointer_get(klass_id); - EO_MAGIC_RETURN(klass, EO_CLASS_EINA_MAGIC); op_descs = klass->desc->ops.descs2; qsort((void*)op_descs, klass->desc->ops.count, sizeof(Eo2_Op_Description), eo2_api_funcs_cmp); @@ -925,6 +922,9 @@ _eo_class_constructor(_Eo_Class *klass) klass->constructed = EINA_TRUE; + if (klass->desc->version == EO2_VERSION) + _eo2_class_funcs_set(klass); + if (klass->desc->class_constructor) klass->desc->class_constructor(_eo_class_id_get(klass)); } diff --git a/src/lib/eo/eo2_base_class.c b/src/lib/eo/eo2_base_class.c index 218975245b..4d0610f772 100644 --- a/src/lib/eo/eo2_base_class.c +++ b/src/lib/eo/eo2_base_class.c @@ -771,10 +771,9 @@ _destructor(Eo *obj, void *class_data) EAPI EO2_VOID_FUNC_BODY(eo2_destructor); static void -_class_constructor(Eo_Class *klass) +_class_constructor(Eo_Class *klass EINA_UNUSED) { event_freeze_count = 0; - eo2_class_funcs_set(klass); } Eo2_Op_Description op_descs [] = {