Skip to content

Releases: spaskalev/buddy_alloc

v1.3.1

11 Dec 11:18
2e7b143

Choose a tag to compare

Minor performance improvements by @theVerySharpFlat

v1.3.0

04 Oct 09:10
09e1c03

Choose a tag to compare

  • Added buddy_alloc_size function that returns the size of an allocated slot
  • Improved performance
  • Removed C++ shadowed constructor warnings

v1.2.3

24 Feb 08:44
2bd51e5

Choose a tag to compare

Guard a static function so that it is only available when the experimental change tracking feature is enabled. This is to avoid failing strict compile time warnings downstream when the feature is disabled.

There are no functional differences to v1.2.2

v1.2.2

18 Feb 19:21
90c455a

Choose a tag to compare

  • Fixed a bug in arena downsizing that could lead to duplicate allocations.

v1.2.1

21 Dec 17:53
f9c8dab

Choose a tag to compare

  • Fixed a bug affecting the buddy_can_shrink function, added more tests for up-resizing an arena in normal and embedded mode.

v1.2.0

23 Sep 06:29
4a97c2c

Choose a tag to compare

  • Add a new buddy_get_embed_at function to get a handle to the allocator when having a pointer to the arena.
  • Add a new enum buddy_safe_free_status that is returned from the buddy_safe_free function. It can be used to detect invalid free calls and fail early.
  • Document the allocator metadata size based on some common arena and smallest allocation block sizes.

v1.1.1

15 Jun 00:01
5dce4fe

Choose a tag to compare

  • Support compiling with Pelles C
  • Add a cmake target for the benchmark
  • Fixed a few harmless compile warnings

v1.1.0

22 Nov 22:13
22efc4d

Choose a tag to compare

  • Add a parameter to buddy_realloc that allows it to ignore data. Useful for resizing buffers when there is no longer any interest in their content.
  • Minor style and repo changes.

v1.0.0

09 Oct 13:01
95ce902

Choose a tag to compare

External changes:

  • buddy_walk callback is now invoked for free slots in addition to allocated ones and has an extra parameter to distinguish between free and allocated.
  • buddy_fragmentation return type is now an unsigned char that ranges between 0 and 255 and no float types are used. This way fragmentation can be reported when used in environments that don't support the float type.

Internal changes:

  • A static inline two_to_the_power_of helper function that returns size_t is used in place of manual power of two calculations.
  • The fast square root algorithm used in the fragmentation formula has been replaced with an integer square root algorithm by Martin Guy, 1985.

Misc:

Two years and nine months have passed since this project started and it has now reached the 1.0.0 milestone. Thanks to all contributors and users for their interest in it.

v0.9

22 Aug 19:41

Choose a tag to compare

  • Remove FAMs and {0} initializers to facilitate interop with strict C++ compilers
    • Clang generates identical code with FAMs and without FAMs
    • GCC generates almost-identical code
  • Make the debug functions non-static so that they can be used by code in other units
  • Include stdio.h only when BUDDY_PRINTF is not defined
  • Add a macro for C++ name mangling