·
16 commits
to main
since this release
What's Changed
- Sync ArrayList from monorepo (#177) by @braydenanderson2014 in #2
Changelog
1.0.8
- Fixed
operator[]undefined behavior by returning a reset static default reference for out-of-bounds access. - Fixed
getReference()shared static corruption by resetting the fallback value on each out-of-bounds call. - Fixed
sort()so the selected algorithm path receives the comparator correctly. - Restored merge sort to respect the user-supplied comparator.
- Fixed quicksort partitioning so it matches the documented comparator contract.
- Guarded
sort(),bubbleSort(), andquickSort()against empty and single-element lists. - Guarded
begin()andend()so they no longer dereference the backing array and are safe for empty or zero-capacity buffers. - Initialized
sortAlgorithmin the constructor. - Copied
initialSizeandsortAlgorithmin the copy constructor and assignment operator. - Made copy assignment allocate the new buffer before replacing the old one.
- Replaced bulk-copy and growth paths with element-by-element assignment where needed to preserve non-trivial copy semantics.
- Changed
clear()to preserve capacity instead of reallocating. - Added null checks to the active growth and capacity-management paths.
- Hardened
resize1()andresize2()so zero-capacity and one-capacity lists can still grow. - Fixed bulk add/insert paths so they continue resizing until enough capacity exists.
- Added and updated regression tests for bulk growth, sorting, iterator safety, and resize edge cases.
- Reworked the README into a full library document with overview, install/update instructions, support links, badge placeholders, API reference, and changelog.
- Updated package metadata for Arduino Library Manager and PlatformIO publishing.
- Bumped version to 1.0.8 to align with Platformio Version.
These changes should ensure stable and reliable behavior from the Arraylist class. If you have any problems, please file a report. Just note any report filed on this repository will be closed and transferred to the main repository.