]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - lib/hash.cc
SourceFormat Enforcement
[thirdparty/squid.git] / lib / hash.cc
index 08109ed22fcbe20db2f0bd7fbbaefd4470f8020c..92b0d8fbc61f5d6dbb9c43bee1e28baa336bc174 100644 (file)
@@ -1,51 +1,21 @@
-
 /*
- * $Id$
- *
- * DEBUG: section 00    Hash Tables
- * AUTHOR: Harvest Derived
- *
- * SQUID Web Proxy Cache          http://www.squid-cache.org/
- * ----------------------------------------------------------
- *
- *  Squid is the result of efforts by numerous individuals from
- *  the Internet community; see the CONTRIBUTORS file for full
- *  details.   Many organizations have provided support for Squid's
- *  development; see the SPONSORS file for full details.  Squid is
- *  Copyrighted (C) 2001 by the Regents of the University of
- *  California; see the COPYRIGHT file for full details.  Squid
- *  incorporates software developed and/or copyrighted by other
- *  sources; see the CREDITS file for full details.
- *
- *  This program is free 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 2 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, USA.
+ * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
  *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
  */
 
+/* DEBUG: section 00    Hash Tables */
+
 #include "squid.h"
 #include "hash.h"
 #include "profiler/Profiler.h"
 
-#if HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#endif
+#include <cassert>
+#include <cmath>
+#include <cstdlib>
+#include <cstring>
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #elif HAVE_MALLOC_H
 #include <malloc.h>
 #endif
-#if HAVE_ASSERT_H
-#include <assert.h>
-#endif
-#if HAVE_MATH_H
-#include <math.h>
-#endif
 
 static void hash_next_bucket(hash_table * hid);
 
@@ -71,8 +35,9 @@ hash_string(const void *data, unsigned int size)
     unsigned int j = 0;
     unsigned int i = 0;
     while (*s) {
-        j++;
-        n ^= 271 * (*s++);
+        ++j;
+        n ^= 271 * *s;
+        ++s;
     }
     i = n ^ (j * 271);
     return i % size;
@@ -102,26 +67,27 @@ hash4(const void *data, unsigned int size)
         break;
     case 7:
         HASH4;
-        /* FALLTHROUGH */
+    /* FALLTHROUGH */
     case 6:
         HASH4;
-        /* FALLTHROUGH */
+    /* FALLTHROUGH */
     case 5:
         HASH4;
-        /* FALLTHROUGH */
+    /* FALLTHROUGH */
     case 4:
         HASH4;
-        /* FALLTHROUGH */
+    /* FALLTHROUGH */
     case 3:
         HASH4;
-        /* FALLTHROUGH */
+    /* FALLTHROUGH */
     case 2:
         HASH4;
-        /* FALLTHROUGH */
+    /* FALLTHROUGH */
     case 1:
         HASH4;
     }
-    while (loop--) {
+    while (loop) {
+        --loop;
         HASH4;
         HASH4;
         HASH4;
@@ -169,7 +135,7 @@ hash_join(hash_table * hid, hash_link * lnk)
     i = hid->hash(lnk->key, hid->size);
     lnk->next = hid->buckets[i];
     hid->buckets[i] = lnk;
-    hid->count++;
+    ++hid->count;
 }
 
 /**
@@ -268,7 +234,7 @@ hash_remove_link(hash_table * hid, hash_link * hl)
             if (NULL == hid->next)
                 hash_next_bucket(hid);
         }
-        hid->count--;
+        --hid->count;
         return;
     }
     assert(0);
@@ -295,9 +261,9 @@ hashFreeItems(hash_table * hid, HASHFREE * free_func)
     hash_first(hid);
     while ((l = hash_next(hid)) && i < hid->count) {
         *(list + i) = l;
-        i++;
+        ++i;
     }
-    for (int j = 0; j < i; j++)
+    for (int j = 0; j < i; ++j)
         free_func(*(list + j));
     xfree(list);
 }
@@ -334,7 +300,7 @@ hashPrime(int n)
     int best_prime = hash_primes[0];
     double min = fabs(log((double) n) - log((double) hash_primes[0]));
     double d;
-    for (int i = 0; i < I; i++) {
+    for (int i = 0; i < I; ++i) {
         d = fabs(log((double) n) - log((double) hash_primes[i]));
         if (d > min)
             continue;
@@ -353,7 +319,6 @@ hashKeyStr(hash_link * hl)
     return (const char *) hl->key;
 }
 
-
 #if USE_HASH_DRIVER
 /**
  *  hash-driver - Run with a big file as stdin to insert each line into the
@@ -406,8 +371,8 @@ main(void)
     }
     printf("done walking hash table...\n");
 
-
     printf("driver finished.\n");
     exit(0);
 }
 #endif
+