Replace the consumer-sized status-name array with private sparse storage and accept arbitrary integer status values. Add explicit range reservations with overlap diagnostics, reserve the library's 0-255 compatibility band, and harden pointer and string boundary handling. Update regression coverage and document the required migration for custom status-code consumers.
851 B
851 B
TODO
The status-code ownership work has been consumed. The implementation now:
- stores status names in a private, fixed-capacity sparse registry, removing the consumer-visible array ABI and
AKERR_MAX_ERR_VALUE; - accepts names for arbitrary
intstatus values and always terminates truncated names; - reserves status values 0 through 255 for libakerror;
- provides
akerr_reserve_status_range()so independently developed libraries can declare ranges and detect overlaps at initialization; and - tests arbitrary status values, range overlap/idempotency/overflow, owner and name limits, and both registry capacity limits.
Consumers with existing custom codes below 256 should migrate them to a declared range starting at 256 or higher. Range reservation is opt-in, so every co-resident library must participate for collisions to be detected.