summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-06-22 15:54:46 -0400
committerGHC GitLab CI <ghc-ci@gitlab-haskell.org>2020-06-23 21:54:37 +0000
commit712940de6823398d332ae7a0c4f340347bea8a89 (patch)
tree9f5fce41e9966dcb049974cafe0ba9dc37732f8b /testsuite
parentd4a0be758003f32b9d9d89cfd14b9839ac002f4d (diff)
downloadhaskell-wip/T18348.tar.gz
rts/Hash: Simplify freeing of HashListChunkswip/T18348
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 'testsuite')
0 files changed, 0 insertions, 0 deletions