]> git.cameronkatri.com Git - mandoc.git/commitdiff
Small speed-ups in hash lookup.
authorKristaps Dzonsons <kristaps@bsd.lv>
Sun, 8 Mar 2009 20:29:45 +0000 (20:29 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Sun, 8 Mar 2009 20:29:45 +0000 (20:29 +0000)
hash.c

diff --git a/hash.c b/hash.c
index cee663320c47c11abf5c88a150ccd2fbdc761c20..9fca7508fde9eb187d1ea8c4cb04c5e8c181c3ea 100644 (file)
--- a/hash.c
+++ b/hash.c
@@ -1,4 +1,4 @@
-/* $Id: hash.c,v 1.7 2009/03/08 11:41:22 kristaps Exp $ */
+/* $Id: hash.c,v 1.8 2009/03/08 20:29:45 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -95,6 +95,8 @@ mdoc_tokhash_find(const void *arg, const char *tmp)
 
        if (0 == tmp[0] || 0 == tmp[1])
                return(MDOC_MAX);
+       if (tmp[2] && tmp[3])
+               return(MDOC_MAX);
 
        if ( ! (tmp[0] == 37 || (tmp[0] >= 65 && tmp[0] <= 90)))
                return(MDOC_MAX);
@@ -128,13 +130,10 @@ mdoc_tokhash_find(const void *arg, const char *tmp)
        assert(0 == (size_t)slot % sizeof(struct mdoc_macro));
        slot /= sizeof(struct mdoc_macro);
 
-       /* 
-        * FIXME: is this necessary, or do we only need to check the
-        * remaining characters (2+)? 
-        */
+       if (0 == tmp[2])
+               return(slot);
 
-       if (0 != strcmp(mdoc_macronames[slot], tmp))
-               return(MDOC_MAX);
-       return(slot);
+       assert(0 == tmp[3]);
+       return(tmp[2] == mdoc_macronames[slot][2] ? slot : MDOC_MAX);
 }