Memory Handlers
Advanced Functionality
Collaboration diagram for Memory Handlers:

## Typedefs

typedef void *(* | jwt_malloc_t) (size_t)
| Prototype for malloc(3).
typedef void(* | jwt_free_t) (void *)
| Prototype for free(3).

## Functions

int | jwt_set_alloc (jwt_malloc_t pmalloc, jwt_free_t pfree)
| Set functions to be used for memory management.
void | jwt_get_alloc (jwt_malloc_t *pmalloc, jwt_free_t *pfree)

## Detailed Description

These functions allow you to get or set memory allocation functions.

## Typedef Documentation

## jwt_free_t

typedef void(* jwt_free_t) (void *)

Prototype for free(3).

## jwt_malloc_t

typedef void *(* jwt_malloc_t) (size_t)

Prototype for malloc(3).

## Function Documentation

## jwt_get_alloc()

void jwt_get_alloc | ( | jwt_malloc_t * | pmalloc,
|  | jwt_free_t * | pfree )

Get functions used for allocating and freeing memory.

Parameters

  pmalloc | Pointer to malloc function output variable, or NULL
  pfree | Pointer to free function output variable, or NULL

## jwt_set_alloc()

int jwt_set_alloc | ( | jwt_malloc_t | pmalloc,
|  | jwt_free_t | pfree )

Set functions to be used for memory management.

By default, LibJWT uses malloc and free for memory management. This function allows the user of the library to specify its own memory management functions. This is especially useful on Windows where mismatches in runtimes across DLLs can cause problems.

The caller can specify either a valid function pointer for any of the parameters or NULL to use the corresponding default allocator function.

Note
  This function will also set the memory allocator for the Jansson library.

Parameters

  pmalloc | The function to use for allocating memory or NULL to use malloc
  pfree | The function to use for freeing memory or NULL to use free

Returns
  0 on success or errno otherwise.