|
Tor
0.4.7.0-alpha-dev
|
Headers for util_malloc.c. More...
Go to the source code of this file.
Macros | |
| #define | tor_free(p) |
| #define | tor_malloc(size) tor_malloc_(size) |
| #define | tor_malloc_zero(size) tor_malloc_zero_(size) |
| #define | tor_calloc(nmemb, size) tor_calloc_(nmemb, size) |
| #define | tor_realloc(ptr, size) tor_realloc_(ptr, size) |
| #define | tor_reallocarray(ptr, sz1, sz2) tor_reallocarray_((ptr), (sz1), (sz2)) |
| #define | tor_strdup(s) tor_strdup_(s) |
| #define | tor_strndup(s, n) tor_strndup_(s, n) |
| #define | tor_memdup(s, n) tor_memdup_(s, n) |
| #define | tor_memdup_nulterm(s, n) tor_memdup_nulterm_(s, n) |
| #define | raw_malloc malloc |
| #define | raw_realloc realloc |
| #define | raw_free free |
| #define | raw_strdup strdup |
| #define | FREE_AND_NULL(typename, freefn, var) |
Functions | |
| void * | tor_malloc_ (size_t size) ATTR_MALLOC |
| void * | tor_malloc_zero_ (size_t size) ATTR_MALLOC |
| void * | tor_calloc_ (size_t nmemb, size_t size) ATTR_MALLOC |
| void * | tor_realloc_ (void *ptr, size_t size) |
| void * | tor_reallocarray_ (void *ptr, size_t size1, size_t size2) |
| char * | tor_strdup_ (const char *s) ATTR_MALLOC |
| char * | tor_strndup_ (const char *s, size_t n) ATTR_MALLOC |
| void * | tor_memdup_ (const void *mem, size_t len) ATTR_MALLOC |
| void * | tor_memdup_nulterm_ (const void *mem, size_t len) ATTR_MALLOC |
| void | tor_free_ (void *mem) |
Headers for util_malloc.c.
Definition in file malloc.h.
| #define FREE_AND_NULL | ( | typename, | |
| freefn, | |||
| var | |||
| ) |
| #define tor_free | ( | p | ) |
Release memory allocated by tor_malloc, tor_realloc, tor_strdup, etc. Unlike the free() function, the tor_free() macro sets the pointer value to NULL after freeing it.
This is a macro. If you need a function pointer to release memory from tor_malloc(), use tor_free_().
Note that this macro takes the address of the pointer it is going to free and clear. If that pointer is stored with a nonstandard alignment (eg because of a "packed" pragma) it is not correct to use tor_free().
| void* tor_calloc_ | ( | size_t | nmemb, |
| size_t | size | ||
| ) |
Allocate a chunk of nmemb*size bytes of memory, fill the memory with zero bytes, and return a pointer to the result. Log and terminate the process on error. (Same as calloc(nmemb,size), but never returns NULL.) The second argument (size) should preferably be non-zero and a compile-time constant.
| void tor_free_ | ( | void * | mem | ) |
Helper for places that need to take a function pointer to the right spelling of "free()".
Definition at line 227 of file malloc.c.
Referenced by free_execve_args(), smartlist_uniq_digests(), smartlist_uniq_digests256(), smartlist_uniq_strings(), sort_version_list(), tor_run_main(), and tor_str_wipe_and_free_().
| void* tor_malloc_ | ( | size_t | size | ) |
Allocate a chunk of size bytes of memory, and return a pointer to result. On error, log and terminate the process. (Same as malloc(size), but never returns NULL.)
Definition at line 32 of file malloc.c.
Referenced by tor_malloc_zero_(), and tor_run_main().
| void* tor_malloc_zero_ | ( | size_t | size | ) |
| void* tor_memdup_ | ( | const void * | mem, |
| size_t | len | ||
| ) |
| void* tor_memdup_nulterm_ | ( | const void * | mem, |
| size_t | len | ||
| ) |
| void* tor_realloc_ | ( | void * | ptr, |
| size_t | size | ||
| ) |
Change the size of the memory block pointed to by ptr to size bytes long; return the new memory block. On error, log and terminate. (Like realloc(ptr,size), but never returns NULL.)
Definition at line 118 of file malloc.c.
Referenced by tor_run_main().
| void* tor_reallocarray_ | ( | void * | ptr, |
| size_t | sz1, | ||
| size_t | sz2 | ||
| ) |
| char* tor_strdup_ | ( | const char * | s | ) |
| char* tor_strndup_ | ( | const char * | s, |
| size_t | n | ||
| ) |