diff --git a/xpcom/ds/nsHashtable.h b/xpcom/ds/nsHashtable.h index 505b2549a2a..b3fcaba788b 100644 --- a/xpcom/ds/nsHashtable.h +++ b/xpcom/ds/nsHashtable.h @@ -62,6 +62,7 @@ class NS_COM nsHashKey { enum nsHashKeyType { UnknownKey, SupportsKey, + PRUint32Key, VoidKey, IDKey, CStringKey, @@ -227,6 +228,31 @@ class NS_COM nsISupportsKey : public nsHashKey { nsresult Write(nsIObjectOutputStream* aStream) const; }; + +class nsPRUint32Key : public nsHashKey { +protected: + PRUint32 mKey; +public: + nsPRUint32Key(PRUint32 key) { +#ifdef DEBUG + mKeyType = PRUint32Key; +#endif + mKey = key; + } + + PRUint32 HashCode(void) const { + return mKey; + } + + PRBool Equals(const nsHashKey *aKey) const { + return mKey == ((const nsPRUint32Key *) aKey)->mKey; + } + nsHashKey *Clone() const { + return new nsPRUint32Key(mKey); + } + PRUint32 GetValue() { return mKey; } +}; + //////////////////////////////////////////////////////////////////////////////// // nsVoidKey: Where keys are void* objects that don't get refcounted.