From: Enlightenment S. <no-...@en...> - 2012-02-16 19:30:32
|
Log: 1/3 eina_model: lookup interfaces in the correct order. We should lookup then in forward order, as they are sorted from most-specific first, with parents at the end. This breaks test, will fix in the last commit (3/3). Author: barbieri Date: 2012-02-16 11:30:23 -0800 (Thu, 16 Feb 2012) New Revision: 68032 Trac: http://trac.enlightenment.org/e/changeset/68032 Modified: trunk/eina/src/lib/eina_model.c Modified: trunk/eina/src/lib/eina_model.c =================================================================== --- trunk/eina/src/lib/eina_model.c 2012-02-16 19:26:30 UTC (rev 68031) +++ trunk/eina/src/lib/eina_model.c 2012-02-16 19:30:23 UTC (rev 68032) @@ -3487,17 +3487,17 @@ eina_model_interface_get(const Eina_Model *model, const char *name) { const Eina_Model_Description *desc; - const Eina_Model_Interface **itr, **itr_first; + const Eina_Model_Interface **itr, **itr_end; EINA_MODEL_INSTANCE_CHECK_VAL(model, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); desc = model->desc; - itr_first = desc->cache.ifaces; - itr = itr_first + desc->total.ifaces - 1; + itr = desc->cache.ifaces; + itr_end = itr + desc->total.ifaces; /* fallback to strcmp if user is lazy about speed */ - for (; itr >= itr_first; itr--) + for (; itr < itr_end; itr++) if (strcmp((*itr)->name, name) == 0) return *itr; |