optimize language.c lang_english_to_id()

speed up comparisons by getting length of the supplied english string
and filter based on length finally use our length to do memcmp since
we know where the null is already

Change-Id: I595f03ae4b08ee0d59bb9adacbe3b69f08991a9e
This commit is contained in:
William Wilgus 2024-12-30 23:17:57 -05:00
parent 186ad1234b
commit ea5ca58dc6

View file

@ -137,11 +137,12 @@ int lang_english_to_id(const char *english)
{
int i;
unsigned char *ptr = (unsigned char *) core_language_builtin;
size_t ptrlen, len = strlen(english);
for (i = 0; i < LANG_LAST_INDEX_IN_ARRAY; i++) {
if (!strcmp(ptr, english))
ptrlen = strlen((char *)ptr);
if ((ptrlen == len) && memcmp(ptr, english, ptrlen) == 0)
return i;
ptr += strlen((char *)ptr) + 1; /* advance pointer to next string */
ptr += ptrlen + 1; /* advance pointer to next string */
}
return -1;
}