add macros: ptr_array_allocator_xxx
parent
c3f22aa867
commit
7fbdb0cece
|
|
@ -46,6 +46,13 @@ typedef struct
|
||||||
id_name_pair_t elts[0];
|
id_name_pair_t elts[0];
|
||||||
} IdNameArray;
|
} IdNameArray;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int alloc;
|
||||||
|
int count;
|
||||||
|
void *elts[0];
|
||||||
|
} PointerArray;
|
||||||
|
|
||||||
typedef struct array_allocator_context
|
typedef struct array_allocator_context
|
||||||
{
|
{
|
||||||
struct fast_allocator_context allocator;
|
struct fast_allocator_context allocator;
|
||||||
|
|
@ -144,6 +151,23 @@ extern "C" {
|
||||||
array_allocator_free(ctx, (VoidArray *)array)
|
array_allocator_free(ctx, (VoidArray *)array)
|
||||||
|
|
||||||
|
|
||||||
|
#define ptr_array_allocator_init_ex(ctx, min_bits, max_bits, need_lock) \
|
||||||
|
array_allocator_init_ex(ctx, "ptr", sizeof(void *), \
|
||||||
|
min_bits, max_bits, need_lock)
|
||||||
|
|
||||||
|
#define ptr_array_allocator_init(ctx, min_bits, max_bits) \
|
||||||
|
ptr_array_allocator_init_ex(ctx, min_bits, max_bits, true)
|
||||||
|
|
||||||
|
#define ptr_array_allocator_alloc(ctx, target_count) \
|
||||||
|
(PointerArray *)array_allocator_alloc(ctx, target_count)
|
||||||
|
|
||||||
|
#define ptr_array_allocator_realloc(ctx, old_array, target_count) \
|
||||||
|
(PointerArray *)array_allocator_realloc(ctx, \
|
||||||
|
(VoidArray *)old_array, target_count)
|
||||||
|
|
||||||
|
#define ptr_array_allocator_free(ctx, array) \
|
||||||
|
array_allocator_free(ctx, (VoidArray *)array)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue