23 DC_SCOPED(hybrid) alloc = hybrid_new(&buf, stdalloc_get_ref());
26 void* ptr = hybrid_allocate_uninit(&alloc, 100);
28 ptr = hybrid_reallocate(&alloc, ptr, 100, 200);
30 hybrid_deallocate(&alloc, ptr, 200);
77 DC_SCOPED(dbg) user_alloc = dbg_new(
"user_alloc", stdout, stdalloc_get_ref());
78 DC_SCOPED(slab_large) large_slab = slab_large_new(&user_alloc);
80 slab_large_alloc = slab_large_alloc_dbg_new(
"slab_large alloc", stdout, &large_slab);
81 DC_SCOPED(slab_small) small_slab = slab_small_new(&slab_large_alloc);
83 slab_small_alloc = slab_small_alloc_dbg_new(
"slab_small alloc", stdout, &small_slab);
86 void* ptr1 = slab_small_alloc_dbg_allocate_uninit(&slab_small_alloc, 32);
87 DC_LOG(log,
DC_INFO,
"allocating 64 bytes (larger than block size 32)");
88 void* ptr2 = slab_small_alloc_dbg_allocate_uninit(&slab_small_alloc, 64);
89 DC_LOG(log,
DC_INFO,
"allocating 2048 bytes (larger than large block size 1024)");
90 void* ptr3 = slab_small_alloc_dbg_allocate_uninit(&slab_small_alloc, 2048);
94 slab_small_alloc_dbg_deallocate(&slab_small_alloc, ptr1, 32);
95 slab_small_alloc_dbg_deallocate(&slab_small_alloc, ptr2, 64);
96 slab_small_alloc_dbg_deallocate(&slab_small_alloc, ptr3, 2048);
106 DC_SCOPED(dbg) debug_alloc = dbg_new(
"chunked_example", stdout, stdalloc_get_ref());
107 DC_SCOPED(chunked) alloc = chunked_new(&debug_alloc);
110 void* small = chunked_allocate_uninit(&alloc, 64);
112 void* large = chunked_allocate_uninit(&alloc, 512);
116 chunked_deallocate(&alloc, small, 64);
117 chunked_deallocate(&alloc, large, 512);