Derive-C
Loading...
Searching...
No Matches
staticbump.c File Reference
#include <stdio.h>
#include <derive-c/alloc/staticbump/template.h>
#include <derive-c/core/prelude.h>
Include dependency graph for staticbump.c:

Go to the source code of this file.

Macros

#define CAPACITY   1024
#define NAME   foopool

Functions

void foopool_raw_example ()
int main ()

Macro Definition Documentation

◆ CAPACITY

#define CAPACITY   1024

Definition at line 4 of file staticbump.c.

◆ NAME

#define NAME   foopool

Definition at line 5 of file staticbump.c.

Function Documentation

◆ foopool_raw_example()

void foopool_raw_example ( )

Definition at line 10 of file staticbump.c.

10 {
11 foopool_buffer buf;
12 foopool pool = foopool_new(&buf);
13
14 void* ptr1 = foopool_malloc(&pool, 100);
15 ASSERT(ptr1 != NULL);
16
17 void* ptr2 = foopool_malloc(&pool, 200);
18 ASSERT(ptr2 != NULL);
19
20 // Check the used size
21 size_t used = foopool_get_used(&pool);
22 ASSERT(used == 100 + 200 + foopool_metadata_size * 2);
23
24 foopool_free(&pool, ptr1);
25
26 // reallocated in place
27 void* ptr2_realloc = foopool_realloc(&pool, ptr2, 300);
28 ASSERT(ptr2_realloc == ptr2);
29
30 foopool_free(&pool, ptr2_realloc);
31
32 foopool_clear(&pool);
33
34 // we can allocate at capacity:
35 void* ptr3 = foopool_malloc(&pool, 1024 - foopool_metadata_size);
36 ASSERT(ptr3 != NULL);
37 foopool_free(&pool, ptr3);
38 foopool_clear(&pool);
39
40 // But we cannot allocate more than capacity
41 void* ptr4 = foopool_malloc(&pool, 1024 - foopool_metadata_size + 1);
42 ASSERT(ptr4 == NULL);
43 ASSERT(foopool_get_used(&pool) == 0);
44}
#define ASSERT(expr,...)
Definition macros.h:42
Here is the caller graph for this function:

◆ main()

int main ( )
Examples
complex/employees.c, complex/prime_sieve.c, container/arena/basic.c, container/map/decomposed.c, container/vector/dynamic.c, container/vector/static.c, and utils/option.c.

Definition at line 46 of file staticbump.c.

void foopool_raw_example()
Definition staticbump.c:10
Here is the call graph for this function:
Here is the caller graph for this function: