diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-03-08 20:29:45 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-03-08 20:29:45 +0000 |
commit | 5410a79872e5e765de34d19df2959124707f5c9f (patch) | |
tree | 6cb9653286db8f09f7ab6c8fa9ea7fb94dfb1d18 | |
parent | ebddc53ba819b61acd3de13e5cd9c07e9c28297d (diff) | |
download | mandoc-5410a79872e5e765de34d19df2959124707f5c9f.tar.gz mandoc-5410a79872e5e765de34d19df2959124707f5c9f.tar.zst mandoc-5410a79872e5e765de34d19df2959124707f5c9f.zip |
Small speed-ups in hash lookup.
-rw-r--r-- | hash.c | 15 |
1 files changed, 7 insertions, 8 deletions
@@ -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); } |