* eina: easy speed improvement by reducing operation of mempool.

SVN revision: 53349
This commit is contained in:
Cedric BAIL 2010-10-13 12:12:45 +00:00
parent a1c4588d64
commit a44992380f
1 changed files with 22 additions and 19 deletions

View File

@ -217,12 +217,14 @@ eina_chained_mempool_free(void *data, void *ptr)
#endif
EINA_INLIST_FOREACH(pool->first, p)
{
// Could the pointer be inside that pool
if (ptr < p->limit)
{
// pool mem base
pmem = (void *)(((unsigned char *)p) + sizeof(Chained_Pool));
// is it in pool mem?
if ((ptr >= pmem) &&
((unsigned char *)ptr < (((unsigned char *)pmem) + psize)))
if (ptr >= pmem)
{
// freed node points to prev free node
eina_trash_push(&p->base, ptr);
@ -242,6 +244,7 @@ eina_chained_mempool_free(void *data, void *ptr)
break;
}
}
}
#ifdef EFL_HAVE_THREADS
if (_threads_activated)