Lazy allocator

- Main Page
- Related Pages
- Modules
- Data Structures
- Files
- Examples

Macros | Typedefs | Functions
Lazy allocator
Eina » Tools

## Macros
#define | EINA_LALLOC_ALLOC(function) ((Eina_Lalloc_Alloc)function)
#define | EINA_LALLOC_FREE(function) ((Eina_Lalloc_Free)function)

## Typedefs
typedef Eina_Bool(* | Eina_Lalloc_Alloc) (void *user_data, int num)
| Type definition for the callback used to allocate new items in a lazy allocator.
typedef void(* | Eina_Lalloc_Free) (void *user_data)
| Type definition for the callback used to allocate new items in a lazy allocator.
typedef struct _Eina_Lalloc | Eina_Lalloc
| Public type definition for a lazy allocator.

## Functions
EINA_API Eina_Lalloc * | eina_lalloc_new (void *data, Eina_Lalloc_Alloc alloc_cb, Eina_Lalloc_Free free_cb, int num_init)
| Creates a new lazy allocator.
EINA_API void | eina_lalloc_free (Eina_Lalloc *a)
| Frees the resources for a lazy allocator.
EINA_API Eina_Bool | eina_lalloc_element_add (Eina_Lalloc *a)
| Allocates one more of whatever the lazy allocator is allocating.
EINA_API Eina_Bool | eina_lalloc_elements_add (Eina_Lalloc *a, int num)
| Adds several elements to a lazy allocator.

## Detailed Description

## Macro Definition Documentation

## ◆ EINA_LALLOC_ALLOC

#define EINA_LALLOC_ALLOC | ( |  | function | ) | ((Eina_Lalloc_Alloc)function)

Parameters

  [in] | function | The function to allocate.

## ◆ EINA_LALLOC_FREE

#define EINA_LALLOC_FREE | ( |  | function | ) | ((Eina_Lalloc_Free)function)

Parameters

  [in] | function | The function to free.

## Function Documentation

## ◆ eina_lalloc_new()

EINA_API Eina_Lalloc * eina_lalloc_new | ( | void * | data,
|  | Eina_Lalloc_Alloc | alloc_cb,
|  | Eina_Lalloc_Free | free_cb,
|  | int | num_init
| ) |  |

Creates a new lazy allocator.

Parameters

  [in] | data | The data for which memory will be allocated.
  [in] | alloc_cb | The callback to allocate memory for `data` items.
  [in] | free_cb | The callback to free memory for `data` items.
  [in] | num_init | The number of `data` items to initially allocate space for.

Returns
  A new lazy allocator.

References EINA_SAFETY_ON_NULL_RETURN_VAL.

## ◆ eina_lalloc_free()

EINA_API void eina_lalloc_free | ( | Eina_Lalloc * | a | ) |

Frees the resources for a lazy allocator.

Parameters

  [in,out] | a | The lazy allocator to free.

References EINA_SAFETY_ON_NULL_RETURN.

## ◆ eina_lalloc_element_add()

EINA_API Eina_Bool eina_lalloc_element_add | ( | Eina_Lalloc * | a | ) |

Allocates one more of whatever the lazy allocator is allocating.

Parameters

  [in,out] | a | The lazy allocator to add an item to.

Returns
  EINA_TRUE on success, else EINA_FALSE.

References EINA_FALSE, EINA_SAFETY_ON_NULL_RETURN_VAL, and EINA_TRUE.

## ◆ eina_lalloc_elements_add()

EINA_API Eina_Bool eina_lalloc_elements_add | ( | Eina_Lalloc * | a,
|  | int | num
| ) |  |

Adds several elements to a lazy allocator.

Parameters

  [in,out] | a | The lazy allocator to add items to.
  [in] | num | The number of elements to add.

Returns
  EINA_TRUE on success, else EINA_FALSE.

References EINA_FALSE, EINA_SAFETY_ON_NULL_RETURN_VAL, and EINA_TRUE.