1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 03:08:13 +00:00

UserspaceEmulator: Tidy up the MallocRegionMetadata construction a bit

Use designated initializers to make it very obvious what's being set,
and also give the metadata a backpointer to the region for convenience.
This commit is contained in:
Andreas Kling 2021-03-09 12:00:22 +01:00
parent 915e8dbe71
commit a457b90733
2 changed files with 9 additions and 4 deletions

View file

@ -80,11 +80,15 @@ void MallocTracer::target_did_malloc(Badge<Emulator>, FlatPtr address, size_t si
}
if (!mmap_region.is_malloc_block()) {
auto new_malloc_data = make<MallocRegionMetadata>();
mmap_region.set_malloc_metadata({}, move(new_malloc_data));
auto chunk_size = mmap_region.read32(offsetof(CommonHeader, m_size)).value();
mmap_region.set_malloc_metadata({},
adopt_own(*new MallocRegionMetadata {
.region = mmap_region,
.address = mmap_region.base(),
.chunk_size = chunk_size,
.mallocations = {},
}));
auto& malloc_data = *mmap_region.malloc_metadata();
malloc_data.address = region->base();
malloc_data.chunk_size = mmap_region.read32(offsetof(CommonHeader, m_size)).value();
bool is_chunked_block = malloc_data.chunk_size <= size_classes[num_size_classes - 1];
if (is_chunked_block)