From: Jean-Philippe Andre Date: Mon, 5 Dec 2016 01:43:38 +0000 (+0900) Subject: eo: Fix potential inifinite loop X-Git-Tag: upstream/1.20.0~3093 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=552831386a9553dc49185db30a56fbe93bbcd127;p=platform%2Fupstream%2Fefl.git eo: Fix potential inifinite loop I saw a little oopsie in patch fc48161910fc013674f4af9e19. This amends it to avoid a potential infinite loop. --- diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 37c2a4c..e8e6a12 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -1341,18 +1341,18 @@ efl_class_new(const Efl_Class_Description *desc, const Efl_Class *parent_id, ... while (extn_id) { extn = _eo_class_pointer_get((Efl_Class *)extn_id, __FUNCTION__, __FILE__, __LINE__); - if (!extn) /* did not validate */ - continue; - switch (extn->desc->type) + if (EINA_LIKELY(extn != NULL)) { - case EFL_CLASS_TYPE_REGULAR_NO_INSTANT: - case EFL_CLASS_TYPE_REGULAR: - case EFL_CLASS_TYPE_INTERFACE: - case EFL_CLASS_TYPE_MIXIN: - extn_list = eina_list_append(extn_list, extn); - break; + switch (extn->desc->type) + { + case EFL_CLASS_TYPE_REGULAR_NO_INSTANT: + case EFL_CLASS_TYPE_REGULAR: + case EFL_CLASS_TYPE_INTERFACE: + case EFL_CLASS_TYPE_MIXIN: + extn_list = eina_list_append(extn_list, extn); + break; + } } - extn_id = va_arg(p_list, Eo_Id *); }