summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Bail <cedric@osg.samsung.com>2016-11-23 16:50:36 -0800
committerCedric Bail <cedric@osg.samsung.com>2016-11-23 18:50:19 -0800
commitb5fedfad7e7f5b569388a43df5adc5d6cd197bce (patch)
treeb6a411549b4cc76e124871b47e6386a3e68e9987
parent35cdde67d2f07f2413fc093fd8c2d100b2daa0b0 (diff)
downloadefl-b5fedfad7e7f5b569388a43df5adc5d6cd197bce.tar.gz
ecore: use mempool for legacy idler allocation.
-rw-r--r--src/lib/ecore/ecore_idler.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/ecore/ecore_idler.c b/src/lib/ecore/ecore_idler.c
index 06f3965a18..66747ddf98 100644
--- a/src/lib/ecore/ecore_idler.c
+++ b/src/lib/ecore/ecore_idler.c
@@ -41,6 +41,8 @@ _ecore_factorized_idle_process(void *data, const Efl_Event *event EINA_UNUSED)
_ecore_factorized_idle_del(idler);
}
+static Eina_Mempool *idler_mp = NULL;
+
void *
_ecore_factorized_idle_del(Ecore_Idler *idler)
{
@@ -58,7 +60,7 @@ _ecore_factorized_idle_del(Ecore_Idler *idler)
efl_event_callback_array_del(_mainloop_singleton, idler->desc, idler);
data = idler->data;
- free(idler);
+ eina_mempool_free(idler_mp, idler);
return data;
}
@@ -80,7 +82,13 @@ _ecore_factorized_idle_add(const Efl_Callback_Array_Item *desc,
return NULL;
}
- ret = malloc(sizeof (Ecore_Idler));
+ if (!idler_mp)
+ {
+ idler_mp = eina_mempool_add("chained_mempool", "Ecore_Idle*", NULL, sizeof (Ecore_Factorized_Idle), 23);
+ if (!idler_mp) return NULL;
+ }
+
+ ret = eina_mempool_malloc(idler_mp, sizeof (Ecore_Factorized_Idle));
if (!ret) return NULL;
ret->func = func;