[martin@v.loewis.de] > ... > The pool in question and the arena it belongs to may have different > starting addresses (in 63 of 64 cases, they will be different). Currently, they always have different addresses, as at least the first 4 bytes of an arena are used to link arenas together. If we save the arena base addresses in a vector instead, the link becomes unnecessary (well, it's not actually *used* for anything now anyway), and then the arena-rounding logic can be changed so that the first pool can coincide with the arena start if malloc just happens to return a page-aligned address for the arena (as the code is now, in that case the entire first page is devoted to holding s next-arena pointer). > Of course, you could also build the table for pool addresses, > assigning pool indices - but that would require 64 times as much > memory. Bingo -- I don't want to do that.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4