Bug 415262 - "Make general use of new NSPR rotate macros" [p=swsnyder@insightbb.com (Steve Snyder) r=wtc sr=dbaron a=blocking1.9+]

This commit is contained in:
reed@reedloden.com 2008-02-13 03:34:46 -08:00
Родитель 90c67752a1
Коммит 15381b0f9e
9 изменённых файлов: 25 добавлений и 19 удалений

Просмотреть файл

@ -47,6 +47,7 @@
#include "nsString.h"
#include "nsInterfaceHashtable.h"
#include "nsCycleCollectionParticipant.h"
#include "prbit.h"
class nsIAtom;
class nsIContent;
@ -104,8 +105,7 @@ public:
if (!aKey)
return 0;
return (aKey->mNamespaceID >> 28) ^
(aKey->mNamespaceID << 4) ^
return PR_ROTATE_LEFT32(static_cast<PRUint32>aKey->mNamespaceID, 4) ^
NS_PTR_TO_INT32(aKey->mLocalName);
}
enum { ALLOW_MEMMOVE = PR_TRUE };

Просмотреть файл

@ -54,6 +54,7 @@
#include "nsIAtom.h"
#include "nsReadableUtils.h"
#include "prlog.h"
#include "prbit.h"
#ifdef PR_LOGGING
static PRLogModuleInfo* gMapLog;
@ -415,7 +416,7 @@ nsElementMap::Hash(const void* aKey)
PLHashNumber result = 0;
const PRUnichar* s = reinterpret_cast<const PRUnichar*>(aKey);
while (*s != nsnull) {
result = (result >> 28) ^ (result << 4) ^ *s;
result = PR_ROTATE_LEFT32(result, 4) ^ *s;
++s;
}
return result;

3
netwerk/cache/src/nsDiskCacheDevice.cpp поставляемый
Просмотреть файл

@ -55,6 +55,7 @@
#include "prtypes.h"
#include "prthread.h"
#include "prbit.h"
#include "private/pprio.h"
@ -249,7 +250,7 @@ nsDiskCache::Hash(const char * key)
{
PLDHashNumber h = 0;
for (const PRUint8* s = (PRUint8*) key; *s != '\0'; ++s)
h = (h >> (PL_DHASH_BITS - 4)) ^ (h << 4) ^ *s;
h = PR_ROTATE_LEFT32(h, 4) ^ *s;
return (h == 0 ? ULONG_MAX : h);
}

Просмотреть файл

@ -41,6 +41,7 @@
#include "nsAutoLock.h"
#include "pldhash.h"
#include "nsCRT.h"
#include "prbit.h"
#if defined(PR_LOGGING)
PRLogModuleInfo *gHttpLog = nsnull;
@ -95,7 +96,7 @@ StringHash(PLDHashTable *table, const void *key)
{
PLDHashNumber h = 0;
for (const char *s = reinterpret_cast<const char*>(key); *s; ++s)
h = (h >> 28) ^ (h << 4) ^ nsCRT::ToLower(*s);
h = PR_ROTATE_LEFT32(h, 4) ^ nsCRT::ToLower(*s);
return h;
}

Просмотреть файл

@ -88,6 +88,7 @@
#include "rdf.h"
#include "nsCRT.h"
#include "nsCRTGlue.h"
#include "prbit.h"
////////////////////////////////////////////////////////////////////////
@ -408,7 +409,7 @@ struct BlobHashEntry : public PLDHashEntryHdr {
const PRUint8 *p = data->mBytes, *limit = p + data->mLength;
PLDHashNumber h = 0;
for ( ; p < limit; ++p)
h = (h >> 28) ^ (h << 4) ^ *p;
h = PR_ROTATE_LEFT32(h, 4) ^ *p;
return h;
}

Просмотреть файл

@ -54,9 +54,10 @@
#include "nsCRT.h"
#include "nsIServiceManager.h"
#include "nsCharTraits.h"
#include "prbit.h"
#define ADD_TO_HASHVAL(hashval, c) \
hashval = (hashval>>28) ^ (hashval<<4) ^ (c)
hashval = PR_ROTATE_LEFT32(hashval, 4) ^ (c);
//----------------------------------------------------------------------
@ -346,8 +347,7 @@ PRUint32 nsCRT::BufferHashCode(const PRUnichar* s, PRUint32 len)
const PRUnichar* done = s + len;
while ( s < done )
h = (h>>28) ^ (h<<4) ^ PRUint16(*s++); // cast to unsigned to prevent possible sign extension
h = PR_ROTATE_LEFT32(h, 4) ^ PRUint16(*s++); // cast to unsigned to prevent possible sign extension
return h;
}

Просмотреть файл

@ -44,6 +44,7 @@
#include "nscore.h"
#include "nsString.h"
#include "nsReadableUtils.h"
#include "prbit.h"
#define PL_ARENA_CONST_ALIGN_MASK 3
#include "nsStaticNameTable.h"
@ -112,14 +113,14 @@ caseInsensitiveStringHashKey(PLDHashTable *table, const void *key)
for (const PRUnichar* s = tableKey->mKeyStr.m2b->get();
*s != '\0';
s++)
h = (h >> (PL_DHASH_BITS - 4)) ^ (h << 4) ^ (*s & ~0x20);
h = PR_ROTATE_LEFT32(h, 4) ^ (*s & ~0x20);
} else {
for (const unsigned char* s =
reinterpret_cast<const unsigned char*>
(tableKey->mKeyStr.m1b->get());
*s != '\0';
s++)
h = (h >> (PL_DHASH_BITS - 4)) ^ (h << 4) ^ (*s & ~0x20);
h = PR_ROTATE_LEFT32(h, 4) ^ (*s & ~0x20);
}
return h;
}

Просмотреть файл

@ -37,6 +37,7 @@
#include "nsTHashtable.h"
#include "nsHashKeys.h"
#include "prbit.h"
PRUint32
HashString( const nsAString& aStr )
@ -54,7 +55,7 @@ HashString( const nsAString& aStr )
#endif
while (begin != end) {
code = (code>>28) ^ (code<<4) ^ PRUint32(*begin);
code = PR_ROTATE_LEFT32(code, 4) ^ PRUint32(*begin);
++begin;
}
@ -77,7 +78,7 @@ HashString( const nsACString& aStr )
#endif
while (begin != end) {
code = (code>>28) ^ (code<<4) ^ PRUint32(*begin);
code = PR_ROTATE_LEFT32(code, 4) ^ PRUint32(*begin);
++begin;
}
@ -90,7 +91,7 @@ HashString(const char *str)
PRUint32 code = 0;
while (*str) {
code = (code>>28) ^ (code<<4) ^ PRUint32(*str);
code = PR_ROTATE_LEFT32(code, 4) ^ PRUint32(*str);
++str;
}
@ -103,7 +104,7 @@ HashString(const PRUnichar *str)
PRUint32 code = 0;
while (*str) {
code = (code>>28) ^ (code<<4) ^ PRUint32(*str);
code = PR_ROTATE_LEFT32(code, 4) ^ PRUint32(*str);
++str;
}
@ -124,11 +125,11 @@ PRUint32 nsIDHashKey::HashKey(const nsID* id)
PRUint32 h = id->m0;
PRUint32 i;
h = (h>>28) ^ (h<<4) ^ id->m1;
h = (h>>28) ^ (h<<4) ^ id->m2;
h = PR_ROTATE_LEFT32(h, 4) ^ id->m1;
h = PR_ROTATE_LEFT32(h, 4) ^ id->m2;
for (i = 0; i < 8; i++)
h = (h>>28) ^ (h<<4) ^ id->m3[i];
h = PR_ROTATE_LEFT32(h, 4) ^ id->m3[i];
return h;
}

Просмотреть файл

@ -104,7 +104,7 @@ PL_DHashStringKey(PLDHashTable *table, const void *key)
h = 0;
for (s = key; *s != '\0'; s++)
h = (h >> (PL_DHASH_BITS - 4)) ^ (h << 4) ^ *s;
h = PR_ROTATE_LEFT32(h, 4) ^ *s;
return h;
}