Graphviz 13.1.3~dev.20250813.2319
Loading...
Searching...
No Matches
arena.h
Go to the documentation of this file.
1
7
8#pragma once
9
10#include <stdalign.h>
11#include <stddef.h>
12#include <util/api.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
23
31typedef struct {
33 size_t remaining;
34} arena_t;
35
45UTIL_API void *gv_arena_alloc(arena_t *arena, size_t alignment, size_t size);
46
55#define ARENA_NEW(arena, type) \
56 gv_arena_alloc((arena), alignof(type), sizeof(type))
57
63UTIL_API char *gv_arena_strdup(arena_t *arena, const char *s);
64
70UTIL_API void gv_arena_free(arena_t *arena, void *ptr, size_t size);
71
79
80#ifdef __cplusplus
81}
82#endif
macro for API hiding/exposing
#define UTIL_API
Definition api.h:18
UTIL_API void gv_arena_reset(arena_t *arena)
Definition arena.c:162
UTIL_API char * gv_arena_strdup(arena_t *arena, const char *s)
Definition arena.c:134
UTIL_API void * gv_arena_alloc(arena_t *arena, size_t alignment, size_t size)
Definition arena.c:116
UTIL_API void gv_arena_free(arena_t *arena, void *ptr, size_t size)
Definition arena.c:147
arena_chunk_t * source
current chunk being allocated out of
Definition arena.h:32
size_t remaining
number of free bytes remaining in source
Definition arena.h:33
Definition grammar.c:90