Skip to content

Commit

Permalink
kconfig: avoid multiple calls to strlen
Browse files Browse the repository at this point in the history
Calls to strlen are costly, so avoid calling strln as much as we can.

Reported-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
  • Loading branch information
Yann E. MORIN committed Jul 16, 2013
1 parent 9e554dd commit 26e933e
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions scripts/kconfig/symbol.c
Original file line number Diff line number Diff line change
Expand Up @@ -967,7 +967,7 @@ static int sym_rel_comp( const void *sym1, const void *sym2 )
{
struct sym_match *s1 = *(struct sym_match **)sym1;
struct sym_match *s2 = *(struct sym_match **)sym2;
int l1, l2;
int exact1, exact2;

/* Exact match:
* - if matched length on symbol s1 is the length of that symbol,
Expand All @@ -978,11 +978,11 @@ static int sym_rel_comp( const void *sym1, const void *sym2 )
* exactly; if this is the case, we can't decide which comes first,
* and we fallback to sorting alphabetically.
*/
l1 = s1->eo - s1->so;
l2 = s2->eo - s2->so;
if (l1 == strlen(s1->sym->name) && l2 != strlen(s2->sym->name))
exact1 = (s1->eo - s1->so) == strlen(s1->sym->name);
exact2 = (s2->eo - s2->so) == strlen(s2->sym->name);
if (exact1 && !exact2)
return -1;
if (l1 != strlen(s1->sym->name) && l2 == strlen(s2->sym->name))
if (!exact1 && exact2)
return 1;

/* As a fallback, sort symbols alphabetically */
Expand Down

0 comments on commit 26e933e

Please sign in to comment.