toxcore/other/bootstrap_daemon/docker
Maxim Biro 55a76003b0
Replace memset(int32_t*, -1, _) with a for-loop
memset() treats the passed buffer as a char* array, assigning to every
1-byte of the array the value. So for a single 4-byte int32_t element,
it is assigning bytes 0, 1, 2 and 3 of it to -1. It happens that -1 is
0xFF, so in the end the uint32_t is set to 0xFFFFFFFF, which is -1 in
the two's complement, so the memset() actually produces the correct
result in the end, assuming the platform uses two's complement integers.

Assigning it in the loop is less error-prone, as using memset() on
non-1-byte wide arrays with a non-zero value is fishy, and it is more
portable as we don't have to assume the use of two's complement.

It looks like in a future version of the C standard, C23, two's
complement is the only integer format in C23 (thanks to @robinlinden on
IRC for pointing that out), so perhaps we shouldn't be as concerned with
the portability here? Though @iphydf says that it's still a good idea to
use a for-loop for this case.
2023-12-13 18:40:12 -05:00
..
Dockerfile Update tox-bootstrapd's base Docker images 2023-12-02 01:49:55 -05:00
get-nodes.py chore: Add mypy Python type check. 2022-01-14 19:55:37 +00:00
tox-bootstrapd.sha256 Replace memset(int32_t*, -1, _) with a for-loop 2023-12-13 18:40:12 -05:00
update-sha256 Fix Docker tox-bootstrapd hash update failing when using BuildKit 2023-12-02 01:49:53 -05:00