diff options
author | NRK <nrk@disroot.org> | 2022-03-18 17:03:34 +0600 |
---|---|---|
committer | Romain Gonçalves <me@rgoncalves.se> | 2024-05-12 21:20:50 +0200 |
commit | 1b784902affee2f6112f60cf1d8a815ed4f7e73e (patch) | |
tree | 4ddf167e473941a8204c35aab202eee27307f24e /util.c | |
parent | 3136763c15b67606c5181341b56513e25e744ab3 (diff) | |
download | st-1b784902affee2f6112f60cf1d8a815ed4f7e73e.tar.gz |
base64_digits: reduce scope, implicit zero, +1 size
the array is not accessed outside of base64dec() so it makes sense to
limit it's scope to the related function. the static-storage duration of
the array is kept intact.
this also removes unnecessary explicit zeroing from the start and end of
the array. anything that wasn't explicitly zero-ed will now be
implicitly zero-ed instead.
the validity of the new array can be easily confirmed via running this
trivial loop:
for (int i = 0; i < 255; ++i)
assert(base64_digits[i] == base64_digits_old[i]);
lastly, as pointed out by Roberto, the array needs to have 256 elements
in order to able access it as any unsigned char as an index; the
previous array had 255.
however, this array will only be accessed at indexes which are
isprint() || '=' (see `base64dec_getc()`), so reducing the size of the
array to the highest printable ascii char (127 AFAIK) + 1 might also be
a valid strategy.
Diffstat (limited to 'util.c')
0 files changed, 0 insertions, 0 deletions