forked from enlightenment/efl
* eina: fix eina_tiler_iterator_new API to be consistent with the
rest of the iterator API and usage. WARNING !!! THIS IS REALLY BAD BUT FOR CONSISTENCY, I THINK THAT THIS API BREAK WAS NEEDED. IN FACT IT'S MORE AN ABI BREAK AS IT WILL NOT TRIGGER WARNING OR ERROR IN CURRENT PROGRAM USING eina_tiler_iterator_new SO YOU ARE WARNED ! Reported by playya <frederik.sdun@googlemail.com>. SVN revision: 54153
This commit is contained in:
parent
3ede459046
commit
57997619c9
|
@ -96,6 +96,7 @@ typedef struct _Eina_Iterator_Tiler
|
||||||
Eina_Iterator iterator;
|
Eina_Iterator iterator;
|
||||||
const Eina_Tiler *tiler;
|
const Eina_Tiler *tiler;
|
||||||
list_node_t *curr;
|
list_node_t *curr;
|
||||||
|
Eina_Rectangle r;
|
||||||
EINA_MAGIC
|
EINA_MAGIC
|
||||||
} Eina_Iterator_Tiler;
|
} Eina_Iterator_Tiler;
|
||||||
|
|
||||||
|
@ -1064,7 +1065,6 @@ static inline void _splitter_clear(Eina_Tiler *t)
|
||||||
|
|
||||||
static Eina_Bool _iterator_next(Eina_Iterator_Tiler *it, void **data)
|
static Eina_Bool _iterator_next(Eina_Iterator_Tiler *it, void **data)
|
||||||
{
|
{
|
||||||
Eina_Rectangle *rect = (Eina_Rectangle *)data;
|
|
||||||
list_node_t *n;
|
list_node_t *n;
|
||||||
|
|
||||||
for (n = it->curr; n; n = n->next)
|
for (n = it->curr; n; n = n->next)
|
||||||
|
@ -1073,18 +1073,19 @@ static Eina_Bool _iterator_next(Eina_Iterator_Tiler *it, void **data)
|
||||||
|
|
||||||
cur = ((rect_node_t *)n)->rect;
|
cur = ((rect_node_t *)n)->rect;
|
||||||
|
|
||||||
rect->x = cur.left << 1;
|
it->r.x = cur.left << 1;
|
||||||
rect->y = cur.top << 1;
|
it->r.y = cur.top << 1;
|
||||||
rect->w = cur.width << 1;
|
it->r.w = cur.width << 1;
|
||||||
rect->h = cur.height << 1;
|
it->r.h = cur.height << 1;
|
||||||
|
|
||||||
if (eina_rectangle_intersection(rect, &it->tiler->area) == EINA_FALSE)
|
if (eina_rectangle_intersection(&it->r, &it->tiler->area) == EINA_FALSE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((rect->w <= 0) || (rect->h <= 0))
|
if ((it->r.w <= 0) || (it->r.h <= 0))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
it->curr = n->next;
|
it->curr = n->next;
|
||||||
|
*(Eina_Rectangle **)data = &it->r;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
|
@ -131,6 +131,7 @@ START_TEST(eina_test_tiler_all)
|
||||||
{
|
{
|
||||||
Eina_Tiler *tl;
|
Eina_Tiler *tl;
|
||||||
Eina_Iterator *it;
|
Eina_Iterator *it;
|
||||||
|
Eina_Rectangle *rp;
|
||||||
Eina_Rectangle r;
|
Eina_Rectangle r;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -152,12 +153,12 @@ START_TEST(eina_test_tiler_all)
|
||||||
it = eina_tiler_iterator_new(tl);
|
it = eina_tiler_iterator_new(tl);
|
||||||
fail_if(!it);
|
fail_if(!it);
|
||||||
|
|
||||||
EINA_ITERATOR_FOREACH(it, r)
|
EINA_ITERATOR_FOREACH(it, rp)
|
||||||
{
|
{
|
||||||
fail_if(r.w <= 0);
|
fail_if(rp->w <= 0);
|
||||||
fail_if(r.h <= 0);
|
fail_if(rp->h <= 0);
|
||||||
fail_if(r.x < 0 || r.x + r.w > 640);
|
fail_if(rp->x < 0 || rp->x + rp->w > 640);
|
||||||
fail_if(r.y < 0 || r.y + r.h > 480);
|
fail_if(rp->y < 0 || rp->y + rp->h > 480);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue