Branch: Tag:

2011-05-15

2011-05-15 03:30:31 by Per Hedbor <ph@opera.com>

The compatibility hash functions and hashstr are only used in builtin_functions.c. Move them there.

220:   /*! @namespace 7.4::    */    + #define MK_HASHMEM(NAME, TYPE) ATTRIBUTE((const)) \ +  static INLINE size_t NAME(const TYPE *str, ptrdiff_t len, ptrdiff_t maxn) \ +  { \ +  size_t ret,c; \ +  \ +  ret = len*92873743; \ +  \ +  len = MINIMUM(maxn,len); \ +  for(; len>=0; len--) \ +  { \ +  c=str++[0]; \ +  ret ^= ( ret << 4 ) + c ; \ +  ret &= 0x7fffffff; \ +  } \ +  return ret; \ +  } +  + MK_HASHMEM(simple_hashmem, unsigned char) + MK_HASHMEM(simple_hashmem1, p_wchar1) + MK_HASHMEM(simple_hashmem2, p_wchar2) +    /*! @decl int hash(string s)    *! @decl int hash(string s, int max)    *!
271:   /*! @namespace 7.0::    */    + ATTRIBUTE((const)) static INLINE size_t hashstr(const unsigned char *str, ptrdiff_t maxn) + { +  size_t ret,c; +  +  if(!(ret=str++[0])) +  return ret; +  for(; maxn>=0; maxn--) +  { +  c=str++[0]; +  if(!c) break; +  ret ^= ( ret << 4 ) + c ; +  ret &= 0x7fffffff; +  } +  +  return ret; + } +    /*! @decl int hash(string s)    *! @decl int hash(string s, int max)    *!