inline substitution of strcmp: was called many times!
This commit is contained in:
parent
4f11f3c3fd
commit
b5083a9ccf
1 changed files with 10 additions and 4 deletions
|
@ -63,11 +63,18 @@ idf_hashed(tg, size, hc)
|
|||
register struct idf **hook = &idf_hashtable[hc], *notch;
|
||||
|
||||
while ((notch = *hook)) {
|
||||
register cmp = strcmp(tg, notch->id_text);
|
||||
register char *s1 = tg;
|
||||
register char *cp = notch->id_text;
|
||||
register int cmp;
|
||||
|
||||
while (!(cmp = (*s1 - *cp++))) {
|
||||
if (*s1++ == '\0') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (cmp < 0)
|
||||
break;
|
||||
else
|
||||
if (cmp == 0) {
|
||||
/* suppose that special identifiers, as
|
||||
"setjmp", are already inserted
|
||||
|
@ -75,8 +82,7 @@ idf_hashed(tg, size, hc)
|
|||
sp_occurred[notch->id_special] = 1;
|
||||
return notch;
|
||||
}
|
||||
else
|
||||
hook = ¬ch->next;
|
||||
hook = ¬ch->next;
|
||||
}
|
||||
/* a new struct idf must be inserted at the hook */
|
||||
notch = new_idf();
|
||||
|
|
Loading…
Reference in a new issue