inline substitution of strcmp: was called many times!

This commit is contained in:
ceriel 1988-10-31 14:10:39 +00:00
parent 4f11f3c3fd
commit b5083a9ccf

View file

@ -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 = &notch->next;
hook = &notch->next;
}
/* a new struct idf must be inserted at the hook */
notch = new_idf();