add directory gnu
This commit is contained in:
20
gnu/glibc/glibc-1.03/malloc/TODO
Normal file
20
gnu/glibc/glibc-1.03/malloc/TODO
Normal file
@@ -0,0 +1,20 @@
|
||||
0. Access data structures with accessor macros, then turn the heapinfo
|
||||
into several arrays for faster access on machines with addressing modes.
|
||||
Also, this eventually raises the possibility of maintaining multiple
|
||||
heaps.
|
||||
1. Possible heuristic to catch multiple frees. Introduce an extra word
|
||||
of heapinfo that says whether the remaining info is for something
|
||||
busy or something free. Then we can catch attempts to free already-free
|
||||
large blocks, as well as things not belonging to malloc at all. In the
|
||||
case of a fragment, we can check if the fragment looks like it *already*
|
||||
belongs to the fragment list, by comparing it with the "first" fragment
|
||||
of the block, or checking its "prev" pointer to see if it points into
|
||||
the block. Then if it looks like it might we can exhaustively search
|
||||
the block's free list to see if the fragment is there or not. Extending
|
||||
the heapinfo structure would have the benefit of making it a power of
|
||||
two and thus making array indexing faster, perhaps. Suitably adapted,
|
||||
this heuristic could also catch invalid pointers passed to realloc.
|
||||
|
||||
All of these additional features require the inclusion of <malloc.h>.
|
||||
3. indirect reference allocator: ialloc(), ifree(), irealloc().
|
||||
4. garbage collecting allocator: galloc(), garbage(), gfree(), grealloc().
|
||||
Reference in New Issue
Block a user