libFirm
Memory Allocation

Macros

#define xfree(ptr)   free(ptr)
 Another name for the free function.
#define XMALLOCN(type, n)   ((type*)xmalloc(sizeof(type) * (n)))
 Allocate n objects of a certain type.
#define XMALLOCNZ(type, n)   ((type*)memset(xmalloc(sizeof(type) * (n)), 0, sizeof(type) * (n)))
 Allocate n objects of a certain type and zero them.
#define XMALLOC(type)   XMALLOCN(type, 1)
 Allocate one object of a certain type.
#define XMALLOCZ(type)   XMALLOCNZ(type, 1)
 Allocate one object of a certain type and zero it.
#define XREALLOC(ptr, type, n)   ((type*)xrealloc(ptr, sizeof(type) * (n)))
 Reallocate n objects of a certain type.
#define XMALLOCF(type, member, n)   ((type*)xmalloc(offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))
 Allocate an object with n elements of a flexible array member.
#define XMALLOCFZ(type, member, n)   ((type*)memset(XMALLOCF(type, member, (n)), 0, offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))
 Allocate an object with n elements of a flexible array member and zero the whole object.
#define ALLOCAN(type, n)   ((type*)alloca(sizeof(type) * (n)))
 Allocate n objects of a certain type on the stack.
#define ALLOCANZ(type, n)   ((type*)memset((type*)alloca(sizeof(type) * (n)), 0, sizeof(type) * (n)))
 Allocate n objects of a certain type on the stack and zero them.
#define OALLOCN(obst, type, n)   ((type*)obstack_alloc((obst), sizeof(type) * (n)))
 Allocate n objects of a certain type on the given obstack.
#define OALLOCNZ(obst, type, n)   ((type*)memset(OALLOCN((obst), type, (n)), 0, sizeof(type) * (n)))
 Allocate n objects of a certain type on the given obstack and zero them.
#define OALLOC(obst, type)   OALLOCN(obst, type, 1)
 Allocate one object of a certain type on the given obstack.
#define OALLOCZ(obst, type)   OALLOCNZ(obst, type, 1)
 Allocate one object of a certain type on the given obstack and zero it.
#define OALLOCF(obst, type, member, n)   ((type*)obstack_alloc((obst), offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))
 Allocate an object with n elements of a flexible array member on the given obstck.
#define OALLOCFZ(obst, type, member, n)   ((type*)memset(OALLOCF((obst), type, member, (n)), 0, offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))
 Allocate an object with n elements of a flexible array member on the given obstack and zero the whole object.

Functions

void * xmalloc (size_t size)
 Allocate size bytes on the heap.
void * xrealloc (void *ptr, size_t size)
 Chane size of a previously allocated memory block to size bytes.
char * xstrdup (const char *str)
 Allocates memory and copies string str into it.

Detailed Description

Macro Definition Documentation

#define ALLOCAN (   type,
 
)    ((type*)alloca(sizeof(type) * (n)))

Allocate n objects of a certain type on the stack.

Definition at line 113 of file xmalloc.h.

#define ALLOCANZ (   type,
 
)    ((type*)memset((type*)alloca(sizeof(type) * (n)), 0, sizeof(type) * (n)))

Allocate n objects of a certain type on the stack and zero them.

Definition at line 118 of file xmalloc.h.

#define OALLOC (   obst,
  type 
)    OALLOCN(obst, type, 1)

Allocate one object of a certain type on the given obstack.

Definition at line 133 of file xmalloc.h.

#define OALLOCF (   obst,
  type,
  member,
 
)    ((type*)obstack_alloc((obst), offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))

Allocate an object with n elements of a flexible array member on the given obstck.

Definition at line 144 of file xmalloc.h.

#define OALLOCFZ (   obst,
  type,
  member,
 
)    ((type*)memset(OALLOCF((obst), type, member, (n)), 0, offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))

Allocate an object with n elements of a flexible array member on the given obstack and zero the whole object.

Definition at line 150 of file xmalloc.h.

#define OALLOCN (   obst,
  type,
 
)    ((type*)obstack_alloc((obst), sizeof(type) * (n)))

Allocate n objects of a certain type on the given obstack.

Definition at line 123 of file xmalloc.h.

#define OALLOCNZ (   obst,
  type,
 
)    ((type*)memset(OALLOCN((obst), type, (n)), 0, sizeof(type) * (n)))

Allocate n objects of a certain type on the given obstack and zero them.

Definition at line 128 of file xmalloc.h.

#define OALLOCZ (   obst,
  type 
)    OALLOCNZ(obst, type, 1)

Allocate one object of a certain type on the given obstack and zero it.

Definition at line 138 of file xmalloc.h.

#define xfree (   ptr)    free(ptr)

Another name for the free function.

Definition at line 72 of file xmalloc.h.

#define XMALLOC (   type)    XMALLOCN(type, 1)

Allocate one object of a certain type.

Definition at line 87 of file xmalloc.h.

#define XMALLOCF (   type,
  member,
 
)    ((type*)xmalloc(offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))

Allocate an object with n elements of a flexible array member.

Definition at line 102 of file xmalloc.h.

#define XMALLOCFZ (   type,
  member,
 
)    ((type*)memset(XMALLOCF(type, member, (n)), 0, offsetof(type, member) + sizeof(*((type*)0)->member) * (n)))

Allocate an object with n elements of a flexible array member and zero the whole object.

Definition at line 108 of file xmalloc.h.

#define XMALLOCN (   type,
 
)    ((type*)xmalloc(sizeof(type) * (n)))

Allocate n objects of a certain type.

Definition at line 77 of file xmalloc.h.

#define XMALLOCNZ (   type,
 
)    ((type*)memset(xmalloc(sizeof(type) * (n)), 0, sizeof(type) * (n)))

Allocate n objects of a certain type and zero them.

Definition at line 82 of file xmalloc.h.

#define XMALLOCZ (   type)    XMALLOCNZ(type, 1)

Allocate one object of a certain type and zero it.

Definition at line 92 of file xmalloc.h.

#define XREALLOC (   ptr,
  type,
 
)    ((type*)xrealloc(ptr, sizeof(type) * (n)))

Reallocate n objects of a certain type.

Definition at line 97 of file xmalloc.h.

Function Documentation

void* xmalloc ( size_t  size)

Allocate size bytes on the heap.

This is a wrapper for malloc which calls panic() in case of errors, so no error handling is required for code using it.

void* xrealloc ( void *  ptr,
size_t  size 
)

Chane size of a previously allocated memory block to size bytes.

This is a wrapper for realloc which calls panic() in case of errors, so no error handling is required for code using it.

char* xstrdup ( const char *  str)

Allocates memory and copies string str into it.

This is a wrapper for strdup which calls panic() in case of errors, so no error handling is required for code using it.