eo2: _eo2_api_desc_get: walks in mro not in klass->parent

This commit is contained in:
Jérémy Zurcher 2013-08-14 13:48:54 +02:00 committed by Tom Hacohen
parent 94adc97efe
commit 2af0764eeb
1 changed files with 8 additions and 4 deletions

View File

@ -490,14 +490,18 @@ static inline const Eo2_Op_Description *
_eo2_api_desc_get(const void *api_func, const _Eo_Class *klass) _eo2_api_desc_get(const void *api_func, const _Eo_Class *klass)
{ {
int imin, imax, imid; int imin, imax, imid;
const _Eo_Class *cur_klass;
const _Eo_Class **kls_itr = NULL;
Eo2_Op_Description *op_desc; Eo2_Op_Description *op_desc;
Eo2_Op_Description *op_descs; Eo2_Op_Description *op_descs;
while (klass) kls_itr = klass->mro;
while (*kls_itr)
{ {
cur_klass = *kls_itr;
imin = 0; imin = 0;
imax = klass->desc->ops.count - 1; imax = cur_klass->desc->ops.count - 1;
op_descs = klass->desc->ops.descs2; op_descs = cur_klass->desc->ops.descs2;
while (imax >= imin) while (imax >= imin)
{ {
@ -512,7 +516,7 @@ _eo2_api_desc_get(const void *api_func, const _Eo_Class *klass)
return op_desc; return op_desc;
} }
klass = klass->parent; kls_itr++;
} }
return NULL; return NULL;