Diff for /libaitcrc/src/hash.c between versions 1.3 and 1.4

version 1.3, 2012/07/04 14:53:43 version 1.4, 2012/08/29 09:00:44
Line 182  hash_reddragon(const char *csStr, int nStrLen) Line 182  hash_reddragon(const char *csStr, int nStrLen)
   
         return hash;          return hash;
 }  }
   
   /*
    * hash_jenkins32() - Fast Jenkins hash function
    *
    * @buf = Input buffer
    * @len = Length of buffer
    * @prevhash = Previous hash, if participate in continuing hash
    * return: Hash value
    */
   u_int
   hash_jenkins32(const u_int *buf, int len, u_int prevhash)
   {
           register u_int a, b, c;
   
           assert(buf);
   
           a = b = c = INIT_JENKINS32 + (((u_int) len) << 2) + prevhash;
   
           while (len > 3) {
                   a += buf[0];
                   b += buf[1];
                   c += buf[2];
                   MIX32(a, b, c);
                   len -= 3;
                   buf += 3;
           }
   
           switch (len) {
                   case 3:
                           c += buf[2];
                   case 2:
                           b += buf[1];
                   case 1:
                           a += buf[0];
                           FINAL32(a, b, c);
                   case 0:
                           break;
           }
   
           return c;
   }

Removed from v.1.3  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>