mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:27:43 +00:00
LibC: Simplify malloc size classes
Problem: - `size_classes` is a C-style array which makes it difficult to use in algorithms. - `all_of` algorithm is re-written for the specific implementation. Solution: - Change `size_classes` to be an `Array`. - Directly use the generic `all_of` algorithm instead of reimplementing.
This commit is contained in:
parent
c2ae6c189e
commit
f91bcb8895
3 changed files with 12 additions and 18 deletions
|
@ -68,7 +68,7 @@ void MallocTracer::target_did_malloc(Badge<Emulator>, FlatPtr address, size_t si
|
|||
}));
|
||||
auto& malloc_data = *mmap_region.malloc_metadata();
|
||||
|
||||
bool is_chunked_block = malloc_data.chunk_size <= size_classes[num_size_classes - 1];
|
||||
bool is_chunked_block = malloc_data.chunk_size <= size_classes[size_classes.size() - 1];
|
||||
if (is_chunked_block)
|
||||
malloc_data.mallocations.resize((ChunkedBlock::block_size - sizeof(ChunkedBlock)) / malloc_data.chunk_size);
|
||||
else
|
||||
|
@ -92,7 +92,7 @@ ALWAYS_INLINE Mallocation* MallocRegionMetadata::mallocation_for_address(FlatPtr
|
|||
|
||||
ALWAYS_INLINE Optional<size_t> MallocRegionMetadata::chunk_index_for_address(FlatPtr address) const
|
||||
{
|
||||
bool is_chunked_block = chunk_size <= size_classes[num_size_classes - 1];
|
||||
bool is_chunked_block = chunk_size <= size_classes[size_classes.size() - 1];
|
||||
if (!is_chunked_block) {
|
||||
// This is a BigAllocationBlock
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue