mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 10:07:38 -04:00
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:
parent
186ad1234b
commit
ea5ca58dc6
1 changed files with 4 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue