diff options
author | Taylor Blau <me@ttaylorr.com> | 2023-12-15 01:24:22 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-12-15 01:38:08 +0300 |
commit | ed9f41480a32fff7f3ec66ba2d4bf618885e6ad2 (patch) | |
tree | 29c2f4e70e49bf7dc51bd3ef291f9e176083d466 /git-compat-util.h | |
parent | b96289a10b6577c8fb60b425dbd009f6966622f8 (diff) |
git-compat-util.h: implement checked size_t to uint32_t conversion
In a similar fashion as other checked cast functions in this header
(such as `cast_size_t_to_ulong()` and `cast_size_t_to_int()`), implement
a checked cast function for going from a size_t to a uint32_t value.
This function will be utilized in a future commit which needs to make
such a conversion.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-compat-util.h')
-rw-r--r-- | git-compat-util.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h index 3e7a59b5ff..c3b6c2c226 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -1013,6 +1013,15 @@ static inline unsigned long cast_size_t_to_ulong(size_t a) return (unsigned long)a; } +static inline uint32_t cast_size_t_to_uint32_t(size_t a) +{ + if (a != (uint32_t)a) + die("object too large to read on this platform: %" + PRIuMAX" is cut off to %u", + (uintmax_t)a, (uint32_t)a); + return (uint32_t)a; +} + static inline int cast_size_t_to_int(size_t a) { if (a > INT_MAX) |