10#if defined(LEXBOR_HAVE_ADDRESS_SANITIZER)
11 #include <sanitizer/asan_interface.h>
23 size_t chunk_size,
size_t struct_size)
27 if (dobject ==
NULL) {
31 if (chunk_size == 0 || struct_size == 0) {
48#if defined(LEXBOR_HAVE_ADDRESS_SANITIZER)
66 if (dobject !=
NULL) {
83 if (destroy_self ==
true) {
98#if defined(LEXBOR_HAVE_ADDRESS_SANITIZER)
113#if defined(LEXBOR_HAVE_ADDRESS_SANITIZER)
141#if defined(LEXBOR_HAVE_ADDRESS_SANITIZER)
156 size_t chunk_idx, chunk_pos, i;
167 for (i = 0; i < chunk_idx; i++) {
171 return &chunk->data[chunk_pos % chunk->size];
lxb_inline size_t lexbor_array_length(lexbor_array_t *array)
@ LXB_STATUS_ERROR_OBJECT_IS_NULL
@ LXB_STATUS_ERROR_WRONG_ARGS
void * lexbor_dobject_calloc(lexbor_dobject_t *dobject)
lxb_status_t lexbor_dobject_init(lexbor_dobject_t *dobject, size_t chunk_size, size_t struct_size)
void lexbor_dobject_clean(lexbor_dobject_t *dobject)
lexbor_dobject_t * lexbor_dobject_destroy(lexbor_dobject_t *dobject, bool destroy_self)
void * lexbor_dobject_free(lexbor_dobject_t *dobject, void *data)
lexbor_dobject_t * lexbor_dobject_create(void)
size_t lexbor_dobject_allocated_noi(lexbor_dobject_t *dobject)
void * lexbor_dobject_by_absolute_position(lexbor_dobject_t *dobject, size_t pos)
void * lexbor_dobject_alloc(lexbor_dobject_t *dobject)
size_t lexbor_dobject_cache_length_noi(lexbor_dobject_t *dobject)
lxb_inline size_t lexbor_dobject_cache_length(lexbor_dobject_t *dobject)
lxb_inline size_t lexbor_dobject_allocated(lexbor_dobject_t *dobject)
lexbor_array_t * lexbor_array_create(void)
lexbor_array_t * lexbor_array_destroy(lexbor_array_t *array, bool self_destroy)
void lexbor_array_clean(lexbor_array_t *array)
lxb_status_t lexbor_array_push(lexbor_array_t *array, void *value)
void * lexbor_array_pop(lexbor_array_t *array)
lxb_status_t lexbor_array_init(lexbor_array_t *array, size_t size)
memset(ptr, 0, type->size)
LXB_API void * lexbor_free(void *dst)
LXB_API void * lexbor_calloc(size_t num, size_t size)
lexbor_mem_t * lexbor_mem_create(void)
lexbor_mem_t * lexbor_mem_destroy(lexbor_mem_t *mem, bool destroy_self)
void * lexbor_mem_alloc(lexbor_mem_t *mem, size_t length)
lxb_status_t lexbor_mem_init(lexbor_mem_t *mem, size_t min_chunk_size)
void lexbor_mem_clean(lexbor_mem_t *mem)
lxb_inline size_t lexbor_mem_align(size_t size)
struct lexbor_mem_chunk lexbor_mem_chunk_t
unsigned const char * pos
lexbor_mem_chunk_t * chunk_first
lexbor_mem_chunk_t * chunk
unsigned int lxb_status_t