Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
At present, InStream, OutStream, and NumberUtils provide an unsigned compressed format called C32/C64 – and when we need signed representations, we just cast.
To get rid of all these casts (and fix some sites missing casts), support signed and unsigned variants:
- Write_CI32
- Read_CI32
- Write_CU32
- Read_CU32
- Write_CI64
- Read_CI64
- Write_CU64
- Read_CU64
Note that the encoding is not well suited for negative numbers, as they always require the maximum of 5 or 10 bytes. However, this change is worthwhile simply for the sake of keeping the signs straight in the code without casting all the time.