diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2013-08-14 13:48:54 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2013-08-14 13:48:54 +0200 |
commit | 807d41dd6bbf1b50f2f630b4c60c2306d240138c (patch) | |
tree | b31805050574cfe314d1b3449210c7ab7e3a25f8 | |
parent | 207963514e65a37bea0429c49e2ae835ff0e6094 (diff) | |
download | efl-807d41dd6bbf1b50f2f630b4c60c2306d240138c.tar.gz |
_eo2_api_desc_get: walks in mro not in klass->parent
-rw-r--r-- | src/lib/eo/eo.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 3d8fc8aa73..5173bbd270 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -485,14 +485,18 @@ static inline const Eo2_Op_Description * _eo2_api_desc_get(const void *api_func, const _Eo_Class *klass) { int imin, imax, imid; + const _Eo_Class *cur_klass; + const _Eo_Class **kls_itr = NULL; Eo2_Op_Description *op_desc; Eo2_Op_Description *op_descs; - while (klass) + kls_itr = klass->mro; + while (*kls_itr) { + cur_klass = *kls_itr; imin = 0; - imax = klass->desc->ops.count - 1; - op_descs = klass->desc->ops.descs2; + imax = cur_klass->desc->ops.count - 1; + op_descs = cur_klass->desc->ops.descs2; while (imax >= imin) { @@ -507,7 +511,7 @@ _eo2_api_desc_get(const void *api_func, const _Eo_Class *klass) return op_desc; } - klass = klass->parent; + kls_itr++; } return NULL; |