diff options
author | Chris Dickens <christopher.a.dickens@gmail.com> | 2020-03-26 21:38:45 -0700 |
---|---|---|
committer | Chris Dickens <christopher.a.dickens@gmail.com> | 2020-03-26 21:38:45 -0700 |
commit | 1d67425879c3ae515e97b73df94bf2e7336178b0 (patch) | |
tree | 6836e21a88e894b5a65ddf09bb677499bce0c895 /TODO | |
parent | 1201bccf857aa2c126f6f568f5255b0aa6027ac2 (diff) | |
download | libusb-1d67425879c3ae515e97b73df94bf2e7336178b0.tar.gz |
strerror: Micro-optimize implementation and remove use of strncasecmp()
When comparing the user-provided locale string in libusb_setlocale(), we
only care about the first two characters. The lookup strings within
libusb are always lowercase, so simplify the comparison by directly
comparing the result of tolower(). This removes the need for
strncasecmp() which was not able to be cleanly included in the first
place.
Rather than storing an index into the array of localized strings, store
a pointer to the selected sub-array instead. This trims the generated
code of libusb_strerror() by nearly half as loads can be dropped.
Also constify the arrays of strings as they should not be mutable.
Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'TODO')
0 files changed, 0 insertions, 0 deletions