]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/lib/hash.c
Changing the name of the 'Aide' access level to 'Admin'
[citadel.git] / libcitadel / lib / hash.c
index e8cd6b29c19932f9cf19e697fd50e37e0b290626..2125cb6f945a57da5a0712162b4867876a175a32 100644 (file)
@@ -1,3 +1,21 @@
+/*
+ * Copyright (c) 1987-2011 by the citadel.org team
+ *
+ * This program is open source software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
@@ -155,10 +173,12 @@ int PrintHash(HashList *Hash, TransitionFunc Trans, PrintHashDataFunc PrintEntry
  */
 int dbg_PrintHash(HashList *Hash, PrintHashContent First, PrintHashContent Second)
 {
+#ifdef DEBUG
        const char *foo;
        const char *bar;
        const char *bla = "";
        long key;
+#endif
        long i;
 
        if (Hash == NULL)
@@ -175,22 +195,39 @@ int dbg_PrintHash(HashList *Hash, PrintHashContent First, PrintHashContent Secon
                
                if (Hash->LookupTable[i] == NULL)
                {
+#ifdef DEBUG
                        foo = "";
                        bar = "";
                        key = 0;
+#endif
                }
                else 
                {
+#ifdef DEBUG
                        key = Hash->LookupTable[i]->Key;
                        foo = Hash->LookupTable[i]->HashKey;
+#endif
                        if (First != NULL)
-                               bar = First(Hash->Members[Hash->LookupTable[i]->Position]->Data);
+#ifdef DEBUG
+                               bar =
+#endif
+                                       First(Hash->Members[Hash->LookupTable[i]->Position]->Data);
+#ifdef DEBUG
                        else 
                                bar = "";
+#endif
+
                        if (Second != NULL)
-                               bla = Second(Hash->Members[Hash->LookupTable[i]->Position]->Data);
+#ifdef DEBUG
+                               bla = 
+#endif 
+                                       Second(Hash->Members[Hash->LookupTable[i]->Position]->Data);
+#ifdef DEBUG
+
                        else
                                bla = "";
+#endif
+
                }
 #ifdef DEBUG
                printf (" ---- Hashkey[%ld][%ld]: '%s' Value: '%s' ; %s\n", i, key, foo, bar, bla);
@@ -604,10 +641,10 @@ void Put(HashList *Hash, const char *HKey, long HKLen, void *Data, DeleteHashDat
        /** oh, we're brand new... */
        if (Hash->LookupTable[HashAt] == NULL) {
                InsertHashItem(Hash, HashAt, HashBinKey, HKey, HKLen, Data, DeleteIt);
-       }/** Insert After? */
+       }/** Insert Before? */
        else if (Hash->LookupTable[HashAt]->Key > HashBinKey) {
                InsertHashItem(Hash, HashAt, HashBinKey, HKey, HKLen, Data, DeleteIt);
-       }/** Insert before? */
+       }/** Insert After? */
        else if (Hash->LookupTable[HashAt]->Key < HashBinKey) {
                InsertHashItem(Hash, HashAt + 1, HashBinKey, HKey, HKLen, Data, DeleteIt);
        }
@@ -751,7 +788,7 @@ int GetHashPosFromKey(HashList *Hash, const char *HKey, long HKLen, HashPos *At)
                return 0;
        }
        /** GOTCHA! */
-       At->Position = Hash->LookupTable[HashAt]->Position;
+       At->Position = HashAt;
        return 1;
 }