]> git.cameronkatri.com Git - mandoc.git/blobdiff - hash.c
Adding mdoclint.1 manual.
[mandoc.git] / hash.c
diff --git a/hash.c b/hash.c
index 1e9ed6b8f818e9ab99391ca0a72523dadd5c8064..df0b7c8c4893c901d6660c98bd1df1e0702b6a52 100644 (file)
--- a/hash.c
+++ b/hash.c
@@ -1,4 +1,4 @@
-/* $Id: hash.c,v 1.3 2008/12/23 05:30:49 kristaps Exp $ */
+/* $Id: hash.c,v 1.6 2009/02/23 12:45:19 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
 
 #include "private.h"
 
+/*
+ * Routines for the perfect-hash hashtable used by the parser to look up
+ * tokens by their string-ified names (`.Fl' -> MDOC_Fl).  The
+ * allocation penalty for this is 27 * 26 * sizeof(ptr). 
+ */
 
 void
 mdoc_tokhash_free(void *htab)
@@ -112,6 +117,8 @@ mdoc_tokhash_find(const void *arg, const char *tmp)
                minor = tmp[1] - 97;
 
        ind = (major * 27) + minor;
+       if (ind < 0 || ind >= (27 * 26))
+               return(MDOC_MAX);
 
        if (NULL == htab[ind])
                return(MDOC_MAX);