From 242d324bbae6923a7d7dd75b562bf81c299e1e23 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 7 Jun 2012 11:32:17 +0000 Subject: [PATCH] Eo: further improved error reporting with bad func_set. SVN revision: 71802 --- legacy/eobj/lib/eo.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/legacy/eobj/lib/eo.c b/legacy/eobj/lib/eo.c index 8e7046817e..0e55e17976 100644 --- a/legacy/eobj/lib/eo.c +++ b/legacy/eobj/lib/eo.c @@ -756,16 +756,22 @@ eo_class_funcs_set(Eo_Class *klass, const Eo_Op_Func_Description *func_descs) { const Eo_Op_Description *op_desc = _eo_op_id_desc_get(itr->op); - if (EINA_LIKELY(op_desc && (itr->op_type == op_desc->op_type))) + if (EINA_UNLIKELY(!op_desc || (itr->op == EO_NOOP))) + { + ERR("Setting implementation for non-existent op %x for class '%s'. Func index: %d", itr->op, klass->desc->name, itr - func_descs); + } + else if (EINA_LIKELY(itr->op_type == op_desc->op_type)) { _dich_func_set(klass, itr->op, itr->func); } else { - ERR("Set function's op type (%d) is different than the one in the op description (%d) for op '%s' in class '%s'.", itr->op_type, + ERR("Set function's op type (%d) is different than the one in the op description (%d) for op '%s' in class '%s'. Func index: %d", + itr->op_type, (op_desc) ? op_desc->op_type : EO_OP_TYPE_REGULAR, (op_desc) ? op_desc->name : NULL, - klass->desc->name); + klass->desc->name, + itr - func_descs); } } }