46#define APR_WANT_MEMFUNC
81#define APR_POOL_DECLARE_ACCESSOR(type) \
82 APR_DECLARE(apr_pool_t *) apr_##type##_pool_get \
83 (const apr_##type##_t *the##type)
91#define APR_POOL_IMPLEMENT_ACCESSOR(type) \
92 APR_DECLARE(apr_pool_t *) apr_##type##_pool_get \
93 (const apr_##type##_t *the##type) \
94 { return the##type->pool; }
132#if defined(APR_POOL_DEBUG)
134#if (APR_POOL_DEBUG - APR_POOL_DEBUG -1 == 1)
136#define APR_POOL_DEBUG 1
139#define APR_POOL_DEBUG 0
143#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
199 __attribute__((nonnull(1)));
220 __attribute__((nonnull(1)));
242 const char *file_line)
243 __attribute__((nonnull(1)));
246#define apr_pool_create_ex(newpool, parent, abort_fn, allocator) \
247 apr_pool_create_ex_debug(newpool, parent, abort_fn, allocator, \
248 APR_POOL__FILE_LINE__)
269 const char *file_line)
270 __attribute__((nonnull(1)));
273#define apr_pool_create_unmanaged_ex(newpool, abort_fn, allocator) \
274 apr_pool_create_unmanaged_ex_debug(newpool, abort_fn, allocator, \
275 APR_POOL__FILE_LINE__)
296#define apr_pool_create(newpool, parent) \
297 apr_pool_create_ex_debug(newpool, parent, NULL, NULL, \
298 APR_POOL__FILE_LINE__)
300#define apr_pool_create(newpool, parent) \
301 apr_pool_create_ex(newpool, parent, NULL, NULL)
313#define apr_pool_create_unmanaged(newpool) \
314 apr_pool_create_unmanaged_ex_debug(newpool, NULL, NULL, \
315 APR_POOL__FILE_LINE__)
317#define apr_pool_create_unmanaged(newpool) \
318 apr_pool_create_unmanaged_ex(newpool, NULL, NULL)
327 __attribute__((nonnull(1)));
353 const char *file_line)
354 __attribute__((nonnull(1)));
357#define apr_pool_clear(p) \
358 apr_pool_clear_debug(p, APR_POOL__FILE_LINE__)
383 const char *file_line)
384 __attribute__((nonnull(1)));
387#define apr_pool_destroy(p) \
388 apr_pool_destroy_debug(p, APR_POOL__FILE_LINE__)
403#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
404 __attribute__((alloc_size(2)))
406 __attribute__((nonnull(1)));
417 const char *file_line)
418#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
419 __attribute__((alloc_size(2)))
421 __attribute__((nonnull(1)));
424#define apr_palloc(p, size) \
425 apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
437#define apr_pcalloc(p, size) memset(apr_palloc(p, size), 0, size)
449 const char *file_line)
450 __attribute__((nonnull(1)));
453#define apr_pcalloc(p, size) \
454 apr_pcalloc_debug(p, size, APR_POOL__FILE_LINE__)
472 __attribute__((nonnull(2)));
480 __attribute__((nonnull(1)));
488 __attribute__((nonnull(1)));
509 __attribute__((nonnull(1)));
517 __attribute__((nonnull(1)));
546 __attribute__((nonnull(2,4)));
568 const void *data,
const char *key,
571 __attribute__((nonnull(2,4)));
581 __attribute__((nonnull(1,2,3)));
611 __attribute__((nonnull(3,4)));
628 __attribute__((nonnull(3)));
644 __attribute__((nonnull(3)));
662 __attribute__((nonnull(3,4)));
677 __attribute__((nonnull(3)));
759 __attribute__((nonnull(2)));
775 __attribute__((nonnull(1)));
APR Platform Definitions.
APR Internal Memory Allocation.
APR Miscellaneous library routines.
APR Standard Headers Support.
void apr_pool_cleanup_for_exec(void)
void apr_pool_pre_cleanup_register(apr_pool_t *p, const void *data, apr_status_t(*plain_cleanup)(void *))
void apr_pool_cleanup_register(apr_pool_t *p, const void *data, apr_status_t(*plain_cleanup)(void *), apr_status_t(*child_cleanup)(void *))
void apr_pool_child_cleanup_set(apr_pool_t *p, const void *data, apr_status_t(*plain_cleanup)(void *), apr_status_t(*child_cleanup)(void *))
apr_status_t apr_pool_cleanup_null(void *data)
apr_status_t apr_pool_cleanup_run(apr_pool_t *p, void *data, apr_status_t(*cleanup)(void *))
void apr_pool_cleanup_kill(apr_pool_t *p, const void *data, apr_status_t(*cleanup)(void *))
apr_size_t apr_pool_num_bytes(apr_pool_t *p, int recurse)
void apr_pool_lock(apr_pool_t *pool, int flag)
void apr_pool_owner_set(apr_pool_t *pool, apr_uint32_t flags)
apr_pool_t * apr_pool_find(const void *mem)
void apr_pool_join(apr_pool_t *p, apr_pool_t *sub)
struct apr_allocator_t apr_allocator_t
Definition apr_allocator.h:41
int apr_status_t
Definition apr_errno.h:44
int apr_pool_is_ancestor(apr_pool_t *a, apr_pool_t *b)
const char * apr_pool_get_tag(apr_pool_t *pool)
void * apr_pcalloc_debug(apr_pool_t *p, apr_size_t size, const char *file_line)
int(* apr_abortfunc_t)(int retcode)
Definition apr_pools.h:148
void apr_pool_terminate(void)
void * apr_pcalloc(apr_pool_t *p, apr_size_t size)
apr_status_t apr_pool_userdata_setn(const void *data, const char *key, apr_status_t(*cleanup)(void *), apr_pool_t *pool)
void apr_pool_destroy(apr_pool_t *p)
apr_status_t apr_pool_create_unmanaged(apr_pool_t **newpool)
void * apr_palloc(apr_pool_t *p, apr_size_t size)
apr_status_t apr_pool_userdata_set(const void *data, const char *key, apr_status_t(*cleanup)(void *), apr_pool_t *pool)
void apr_pool_destroy_debug(apr_pool_t *p, const char *file_line)
apr_status_t apr_pool_create(apr_pool_t **newpool, apr_pool_t *parent)
void apr_pool_clear_debug(apr_pool_t *p, const char *file_line)
void apr_pool_abort_set(apr_abortfunc_t abortfunc, apr_pool_t *pool)
apr_status_t apr_pool_create_unmanaged_ex(apr_pool_t **newpool, apr_abortfunc_t abort_fn, apr_allocator_t *allocator)
apr_status_t apr_pool_create_ex(apr_pool_t **newpool, apr_pool_t *parent, apr_abortfunc_t abort_fn, apr_allocator_t *allocator)
apr_status_t apr_pool_create_ex_debug(apr_pool_t **newpool, apr_pool_t *parent, apr_abortfunc_t abort_fn, apr_allocator_t *allocator, const char *file_line)
apr_status_t apr_pool_initialize(void)
apr_status_t apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpool, apr_abortfunc_t abort_fn, apr_allocator_t *allocator, const char *file_line)
apr_allocator_t * apr_pool_allocator_get(apr_pool_t *pool)
void apr_pool_tag(apr_pool_t *pool, const char *tag)
struct apr_pool_t apr_pool_t
Definition apr_pools.h:60
void * apr_palloc_debug(apr_pool_t *p, apr_size_t size, const char *file_line)
apr_pool_t * apr_pool_parent_get(apr_pool_t *pool)
apr_abortfunc_t apr_pool_abort_get(apr_pool_t *pool)
apr_status_t apr_pool_userdata_get(void **data, const char *key, apr_pool_t *pool)
void apr_pool_clear(apr_pool_t *p)