Defines | Functions

xmalloc.h File Reference

Memory allocation functions. More...

Go to the source code of this file.

Defines

#define pa_xnew(type, n)   ((type*) _pa_xnew_internal((n), sizeof(type)))
 Allocate n new structures of the specified type.
#define pa_xnew0(type, n)   ((type*) _pa_xnew0_internal((n), sizeof(type)))
 Same as pa_xnew() but set the memory to zero.
#define pa_xnewdup(type, p, n)   ((type*) _pa_xnewdup_internal((p), (n), sizeof(type)))
 Same as pa_xnew() but duplicate the specified data.
#define pa_xrenew(type, p, n)   ((type*) _pa_xrenew_internal(p, (n), sizeof(type)))
 Reallocate n new structures of the specified type.

Functions

void * pa_xmalloc (size_t l) PA_GCC_MALLOC PA_GCC_ALLOC_SIZE(1)
 Allocate the specified number of bytes, just like malloc() does.
void * pa_xmalloc0 (size_t l) PA_GCC_MALLOC PA_GCC_ALLOC_SIZE(1)
 Same as pa_xmalloc(), but initialize allocated memory to 0.
void * pa_xrealloc (void *ptr, size_t size) PA_GCC_ALLOC_SIZE(2)
 The combination of pa_xmalloc() and realloc()
void pa_xfree (void *p)
 Free allocated memory.
char * pa_xstrdup (const char *s) PA_GCC_MALLOC
 Duplicate the specified string, allocating memory with pa_xmalloc()
char * pa_xstrndup (const char *s, size_t l) PA_GCC_MALLOC
 Duplicate the specified string, but truncate after l characters.
void * pa_xmemdup (const void *p, size_t l) PA_GCC_MALLOC PA_GCC_ALLOC_SIZE(2)
 Duplicate the specified memory block.

Detailed Description

Memory allocation functions.


Define Documentation

#define pa_xnew (   type,
 
)    ((type*) _pa_xnew_internal((n), sizeof(type)))

Allocate n new structures of the specified type.

#define pa_xnew0 (   type,
 
)    ((type*) _pa_xnew0_internal((n), sizeof(type)))

Same as pa_xnew() but set the memory to zero.

#define pa_xnewdup (   type,
  p,
 
)    ((type*) _pa_xnewdup_internal((p), (n), sizeof(type)))

Same as pa_xnew() but duplicate the specified data.

#define pa_xrenew (   type,
  p,
 
)    ((type*) _pa_xrenew_internal(p, (n), sizeof(type)))

Reallocate n new structures of the specified type.


Function Documentation

void pa_xfree ( void *  p )

Free allocated memory.

void* pa_xmalloc ( size_t  l )

Allocate the specified number of bytes, just like malloc() does.

However, in case of OOM, terminate

void* pa_xmalloc0 ( size_t  l )

Same as pa_xmalloc(), but initialize allocated memory to 0.

void* pa_xmemdup ( const void *  p,
size_t  l 
)

Duplicate the specified memory block.

void* pa_xrealloc ( void *  ptr,
size_t  size 
)

The combination of pa_xmalloc() and realloc()

char* pa_xstrdup ( const char *  s )

Duplicate the specified string, allocating memory with pa_xmalloc()

char* pa_xstrndup ( const char *  s,
size_t  l 
)

Duplicate the specified string, but truncate after l characters.