|
| 1 | +# 4.0.0 |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +feat: improve buffer flexibility and safety |
| 6 | + |
| 7 | +* Breaking changes to buffer length handling |
| 8 | + - Save pre-overflow length for safer data extraction |
| 9 | + - Integrate length control with zero filling via options |
| 10 | + - Change seek parameter order to match standard C |
| 11 | + |
| 12 | +* Enhanced buffer initialization and creation |
| 13 | + - Add capacity parameter to `mulle_init` |
| 14 | + - Add `_default` variants for simpler allocator handling |
| 15 | + - Remove deprecated mulle-flexbuffer functionality |
| 16 | + |
| 17 | +* Improved buffer access control |
| 18 | + - Add readonly/writeonly buffer modes with assertions |
| 19 | + - Add byte-level operations `(get_byte,` `pop_byte)` |
| 20 | + - Fix buffer overflow edge cases |
| 21 | + |
| 22 | +* Build system improvements |
| 23 | + - Add CMake package configuration support |
| 24 | + - Improve 32-bit compatibility |
| 25 | + - Update project version to 4.0.0 |
| 26 | + |
| 27 | +* **BREAKING** ``mulle_buffer_zero_to_length`` is now done in ``mulle_buffer_set_length`` |
| 28 | +* **BREAKING** the length of the buffer before the overflow happened is now saved, so string and data extraction will provide the date before the overflow happened |
| 29 | +* **BREAKING** ``mulle_buffer_set_seek`` has change parameter order to match `lseek` and `fseek` |
| 30 | +* **BREAKING** mulle-flexbuffer is dead, use mulle-c11 mulle-alloca instead |
| 31 | +* **BREAKING** ``mulle_init`` now has a capacity parameter just like the container init functions, maybe use ``mulle_init_default`` instead |
| 32 | +* **BREAKING** `mulle-buffer-set-length` now has an `options` argument, which determines zerofilling and size fitting |
| 33 | +* new ``_default`` functions like ``mulle_buffer_create_default`` allow the user to leave out an allocator argument, lessening the cognitive load |
| 34 | +* `mulle-buffer-do` gains a default `alloca` so you have to do even less work to get better performing code |
| 35 | +* mulle-buffer can now be set to readonly or writeonly (in addition to the default read/write) |
| 36 | + |
| 37 | +* mulle-buffer gained readonly and writeonly assertion checks. you can mark a buffer as readonly or writeonly. the default is read/write (no asserts) |
| 38 | + |
| 39 | +*** BREAKING ``_INIT_`` initializers are now called ``_DATA`` to comply with other mulle code |
| 40 | +* ``mulle_buffer_get_byte`` does now exist |
| 41 | + |
| 42 | +* added mulle-buffer-pop-byte function |
| 43 | + |
| 44 | +* changed signature type of `_mulle__buffer_copy_range` dst to void * |
| 45 | + |
| 46 | + |
1 | 47 | ### 3.5.1 |
2 | 48 |
|
3 | 49 | * fix 32 bit problem for mulle-sprintf (special handling of `INT_MAX`) |
|
0 commit comments