diff options
author | Ben Gamari <ben@smart-cactus.org> | 2020-06-22 15:54:46 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-06-25 03:54:52 -0400 |
commit | a788d4d17ad332dbfbe08e6822c52ae0de6ef496 (patch) | |
tree | 871dc32976906a74aaf980e89d2fd7a7fa54575a /rts/HeapStackCheck.cmm | |
parent | fe281b27d544920a2c2ddc00f6284006b85ab294 (diff) | |
download | haskell-a788d4d17ad332dbfbe08e6822c52ae0de6ef496.tar.gz |
rts/Hash: Simplify freeing of HashListChunks
While looking at #18348 I noticed that the treatment of HashLists are a
bit more complex than necessary (which lead to some initial confusion on
my part). Specifically, we allocate HashLists in chunks. Each chunk
allocation makes two allocations: one for the chunk itself and one for a
HashListChunk to link together the chunks for the purposes of freeing.
Simplify this (and hopefully make the relationship between these
clearer) but allocating the HashLists and HashListChunk in a single
malloc. This will both make the implementation easier to follow and
reduce C heap fragmentation.
Note that even after this patch we fail to bound the size of the free
HashList pool. However, this is a separate bug.
Diffstat (limited to 'rts/HeapStackCheck.cmm')
0 files changed, 0 insertions, 0 deletions