From 6522eb0400ef5aef9d74d371638ec8b6757e1f39 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 9 Sep 1994 11:11:39 +0000 Subject: * Parser/grammar1.c (finddfa): massive speed up by using direct addressing instead of searching --- Parser/grammar1.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Parser/grammar1.c b/Parser/grammar1.c index 612f491..ee8933f 100644 --- a/Parser/grammar1.c +++ b/Parser/grammar1.c @@ -36,8 +36,15 @@ finddfa(g, type) grammar *g; register int type; { - register int i; register dfa *d; +#if 1 + /* Massive speed-up */ + d = &g->g_dfa[type - NT_OFFSET]; + assert(d->d_type == type); + return d; +#else + /* Old, slow version */ + register int i; for (i = g->g_ndfas, d = g->g_dfa; --i >= 0; d++) { if (d->d_type == type) @@ -45,6 +52,7 @@ finddfa(g, type) } assert(0); /* NOTREACHED */ +#endif } char * -- cgit v0.12