Menu

Commit [r552]  Maximize  Restore  History

c.lib 1.211 (23.11.2016)

- Added more consistency checking to the slab allocator, which is
built if DEBUG is defined in "stdlib_slab.c".

- Memory allocations are no longer guaranteed to be aligned to
64 bit word boundaries. In fact, this has not even worked
reliably in the past 10 years.

- Memory allocation request sizes are now rounded to multiples of
32 bit words (the size of an address pointer) instead to the
size of a 64 bit word.

- Reduced the memory footprint of the memory allocation management
data structures by reusing the most significant bit of the
memory allocation size. This allows many more allocations to fit
into the 32 byte chunk slabs, but limits the maximum memory
allocation size to a little less than 2 GBytes.

- Added integer overflow checks to the memory management code.

- Reduced the memory management overhead further. This cuts an
additional 8 bytes per allocation, unless neither the slab
allocator nor memory pools are available. With this reduction
the slab allocator is able to use 16 byte chunks, which cover
memory allocation requests of 1..8 bytes.

- Fixed a bug caused by returning an allocation back to a slab
which passed the wrong pointer.

obarthel 2016-11-23

changed /trunk/library/amiga.lib_rev.h
changed /trunk/library/amiga.lib_rev.rev
changed /trunk/library/c.lib_rev.h
changed /trunk/library/c.lib_rev.rev
changed /trunk/library/changes
changed /trunk/library/debug.lib_rev.h
changed /trunk/library/debug.lib_rev.rev
changed /trunk/library/m.lib_rev.h
changed /trunk/library/m.lib_rev.rev
changed /trunk/library/m881.lib_rev.h
changed /trunk/library/m881.lib_rev.rev
changed /trunk/library/net.lib_rev.h
changed /trunk/library/net.lib_rev.rev
changed /trunk/library/stdlib_free.c
changed /trunk/library/stdlib_malloc.c
changed /trunk/library/stdlib_memory.h
changed /trunk/library/stdlib_slab.c
changed /trunk/library/unix.lib_rev.h
changed /trunk/library/unix.lib_rev.rev
/trunk/library/amiga.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/amiga.lib_rev.rev Diff Switch to side-by-side view
Loading...
/trunk/library/c.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/c.lib_rev.rev Diff Switch to side-by-side view
Loading...
/trunk/library/changes Diff Switch to side-by-side view
Loading...
/trunk/library/debug.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/debug.lib_rev.rev Diff Switch to side-by-side view
Loading...
/trunk/library/m.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/m.lib_rev.rev Diff Switch to side-by-side view
Loading...
/trunk/library/m881.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/m881.lib_rev.rev Diff Switch to side-by-side view
Loading...
/trunk/library/net.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/net.lib_rev.rev Diff Switch to side-by-side view
Loading...
/trunk/library/stdlib_free.c Diff Switch to side-by-side view
Loading...
/trunk/library/stdlib_malloc.c Diff Switch to side-by-side view
Loading...
/trunk/library/stdlib_memory.h Diff Switch to side-by-side view
Loading...
/trunk/library/stdlib_slab.c Diff Switch to side-by-side view
Loading...
/trunk/library/unix.lib_rev.h Diff Switch to side-by-side view
Loading...
/trunk/library/unix.lib_rev.rev Diff Switch to side-by-side view
Loading...
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.