75 {
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);
84
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);
91
93
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);
97}