]> git.ipfire.org Git - thirdparty/git.git/commit
varint: use explicit width for integers
authorPatrick Steinhardt <ps@pks.im>
Thu, 2 Oct 2025 07:29:30 +0000 (09:29 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 2 Oct 2025 16:32:32 +0000 (09:32 -0700)
commitf366bfe16b350240c70c487d180c76ddcb8a1b2d
tree8300e3b1b91d01b75bf7a08fc5642a0eea04302a
parentcb2badb4db67bcd02cc99a336c7b6bb0281980a1
varint: use explicit width for integers

The varint subsystem currently uses implicit widths for integers. On the
one hand we use `uintmax_t` for the actual value. On the other hand, we
use `int` for the length of the encoded varint.

Both of these have known maximum values, as we only support at most 16
bytes when encoding varints. Thus, we know that we won't ever exceed
`uint64_t` for the actual value and `uint8_t` for the prefix length.

Refactor the code to use explicit widths. Besides making the logic
platform-independent, it also makes our life a bit easier in the next
commit, where we reimplement "varint.c" in Rust.

Suggested-by: Ezekiel Newren <ezekielnewren@gmail.com>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c
read-cache.c
varint.c
varint.h