• Tim Peters's avatar
    Now that we're no longer linking arenas together, there's no need to · 3c83df20
    Tim Peters yazdı
    waste the first pool if malloc happens to return a pool-aligned address.
    
    This means the number of pools per arena can now vary by 1.  Unfortunately,
    the code counted up from 0 to a presumed constant number of pools.  So
    changed the increasing "watermark" counter to a decreasing "nfreepools"
    counter instead, and fiddled various stuff accordingly.  This also allowed
    getting rid of two more macros.
    
    Also changed the code to align the first address to a pool boundary
    instead of a page boundary.  These are two parallel sets of macro #defines
    that happen to be identical now, but the page macros are in theory more
    restrictive (bigger), and there's simply no reason I can see that it
    wasn't aligning to the less restrictive pool size all along (the code
    only relies on pool alignment).
    
    Hmm.  The "page size" macros aren't used for anything *except* defining
    the pool size macros, and the comments claim the latter isn't necessary.
    So this has the feel of a layer of indirection that doesn't serve a
    purpose; should probably get rid of the page macros now.
    3c83df20
obmalloc.c 31.3 KB