forked from enlightenment/efl
eina: make use of the new near allocation policy for Eina_List.
The idea is to improve memory locality and hopefully get better cache hit in general. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D10536
This commit is contained in:
parent
fb5cf01977
commit
efbc90ff87
|
@ -213,11 +213,11 @@ _eina_list_mempool_accounting_free(Eina_List_Accounting *accounting)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Eina_List *
|
static inline Eina_List *
|
||||||
_eina_list_mempool_list_new(EINA_UNUSED Eina_List *list)
|
_eina_list_mempool_list_new(Eina_List *before, Eina_List *after)
|
||||||
{
|
{
|
||||||
Eina_List *tmp;
|
Eina_List *tmp;
|
||||||
|
|
||||||
tmp = eina_mempool_malloc(_eina_list_mp, sizeof (Eina_List));
|
tmp = eina_mempool_malloc_near(_eina_list_mp, before, after, sizeof (Eina_List));
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
return NULL;
|
return NULL;
|
||||||
#ifdef EINA_LIST_MAGIC
|
#ifdef EINA_LIST_MAGIC
|
||||||
|
@ -585,7 +585,7 @@ eina_list_append(Eina_List *list, const void *data)
|
||||||
{
|
{
|
||||||
Eina_List *l, *new_l;
|
Eina_List *l, *new_l;
|
||||||
|
|
||||||
new_l = _eina_list_mempool_list_new(list);
|
new_l = _eina_list_mempool_list_new(NULL, list);
|
||||||
if (!new_l) return list;
|
if (!new_l) return list;
|
||||||
|
|
||||||
new_l->next = NULL;
|
new_l->next = NULL;
|
||||||
|
@ -619,7 +619,7 @@ eina_list_prepend(Eina_List *list, const void *data)
|
||||||
{
|
{
|
||||||
Eina_List *new_l;
|
Eina_List *new_l;
|
||||||
|
|
||||||
new_l = _eina_list_mempool_list_new(list);
|
new_l = _eina_list_mempool_list_new(list, NULL);
|
||||||
if (!new_l) return list;
|
if (!new_l) return list;
|
||||||
|
|
||||||
new_l->prev = NULL;
|
new_l->prev = NULL;
|
||||||
|
@ -680,7 +680,7 @@ eina_list_append_relative_list(Eina_List *list,
|
||||||
EINA_MAGIC_CHECK_LIST(relative, NULL);
|
EINA_MAGIC_CHECK_LIST(relative, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
new_l = _eina_list_mempool_list_new(list);
|
new_l = _eina_list_mempool_list_new(relative, relative->next);
|
||||||
if (!new_l) return list;
|
if (!new_l) return list;
|
||||||
|
|
||||||
new_l->next = relative->next;
|
new_l->next = relative->next;
|
||||||
|
@ -733,7 +733,7 @@ eina_list_prepend_relative_list(Eina_List *list,
|
||||||
#ifdef EINA_LIST_MAGIC
|
#ifdef EINA_LIST_MAGIC
|
||||||
EINA_MAGIC_CHECK_LIST(relative, NULL);
|
EINA_MAGIC_CHECK_LIST(relative, NULL);
|
||||||
#endif
|
#endif
|
||||||
new_l = _eina_list_mempool_list_new(list);
|
new_l = _eina_list_mempool_list_new(relative->prev, relative);
|
||||||
if (!new_l) return list;
|
if (!new_l) return list;
|
||||||
|
|
||||||
new_l->prev = relative->prev;
|
new_l->prev = relative->prev;
|
||||||
|
|
Loading…
Reference in New Issue