diff --git a/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.cpp b/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.cpp index e8bfdf8cd23..157fae38c20 100644 --- a/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.cpp +++ b/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.cpp @@ -74,6 +74,7 @@ nsAbLDAPDirectory::nsAbLDAPDirectory() : mContext(0), mLock(0) { + mCache.Init(); } nsAbLDAPDirectory::~nsAbLDAPDirectory() @@ -226,12 +227,10 @@ NS_IMETHODIMP nsAbLDAPDirectory::HasCard(nsIAbCard* card, PRBool* hasCard) nsresult rv = Initiate (); NS_ENSURE_SUCCESS(rv, rv); - nsVoidKey key (static_cast(card)); - // Enter lock nsAutoLock lock (mLock); - *hasCard = mCache.Exists (&key); + *hasCard = mCache.Get(card, nsnull); if (!*hasCard && mPerformingQuery) return NS_ERROR_NOT_AVAILABLE; @@ -389,7 +388,7 @@ NS_IMETHODIMP nsAbLDAPDirectory::StartSearch () // Enter lock nsAutoLock lock(mLock); mPerformingQuery = PR_TRUE; - mCache.Reset(); + mCache.Clear(); return rv; } @@ -435,11 +434,10 @@ NS_IMETHODIMP nsAbLDAPDirectory::OnSearchFoundCard(nsIAbCard* card) nsresult rv = Initiate(); NS_ENSURE_SUCCESS(rv, rv); - nsVoidKey key (static_cast(card)); // Enter lock { nsAutoLock lock(mLock); - mCache.Put(&key, card); + mCache.Put(card, card); } // Exit lock diff --git a/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.h b/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.h index 90986dd7707..3843ab82cac 100644 --- a/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.h +++ b/mozilla/mailnews/addrbook/src/nsAbLDAPDirectory.h @@ -48,7 +48,7 @@ #include "nsIAbDirSearchListener.h" #include "nsIAbLDAPDirectory.h" #include "nsIMutableArray.h" -#include "nsHashtable.h" +#include "nsInterfaceHashtable.h" class nsAbLDAPDirectory : public nsAbDirectoryRDFResource, // nsIRDFResource @@ -97,7 +97,7 @@ protected: PRInt32 mContext; PRInt32 mMaxHits; - nsSupportsHashtable mCache; + nsInterfaceHashtable mCache; PRLock* mLock; nsCOMPtr mDirectoryQuery; diff --git a/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.h b/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.h index 841b9b9aaf5..c82dd1411f4 100644 --- a/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.h +++ b/mozilla/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.h @@ -47,7 +47,6 @@ #include "nsWeakReference.h" #include "nsStringGlue.h" -#include "nsHashtable.h" #include "nsCOMArray.h" class nsAbLDAPDirectoryQuery : public nsIAbDirectoryQuery, diff --git a/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.cpp b/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.cpp index 5d1bade8ac4..0249a7377e5 100644 --- a/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.cpp +++ b/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.cpp @@ -73,6 +73,7 @@ nsAbMDBDirectory::nsAbMDBDirectory(void): mIsMailingList(-1), mPerformingQuery(PR_FALSE) { + mSearchCache.Init(); } nsAbMDBDirectory::~nsAbMDBDirectory(void) @@ -444,13 +445,13 @@ NS_IMETHODIMP nsAbMDBDirectory::GetChildNodes(nsISimpleEnumerator* *aResult) return NS_NewArrayEnumerator(aResult, mSubDirectories); } -PR_STATIC_CALLBACK(PRBool) enumerateSearchCache(nsHashKey *aKey, void *aData, void* closure) +PR_STATIC_CALLBACK(PLDHashOperator) +enumerateSearchCache(nsISupports *aKey, nsCOMPtr &aData, void* aClosure) { - nsIMutableArray* array = static_cast(closure); - nsIAbCard* card = static_cast(aData); + nsIMutableArray* array = static_cast(aClosure); - array->AppendElement(card, PR_FALSE); - return PR_TRUE; + array->AppendElement(aData, PR_FALSE); + return PL_DHASH_NEXT; } NS_IMETHODIMP nsAbMDBDirectory::GetChildCards(nsISimpleEnumerator* *result) @@ -635,8 +636,7 @@ NS_IMETHODIMP nsAbMDBDirectory::HasCard(nsIAbCard *cards, PRBool *hasCard) if (mIsQueryURI) { - nsVoidKey key (static_cast(cards)); - *hasCard = mSearchCache.Exists (&key); + *hasCard = mSearchCache.Get(cards, nsnull); return NS_OK; } @@ -952,7 +952,7 @@ NS_IMETHODIMP nsAbMDBDirectory::StartSearch() nsresult rv; mPerformingQuery = PR_TRUE; - mSearchCache.Reset(); + mSearchCache.Clear(); nsCOMPtr arguments = do_CreateInstance(NS_ABDIRECTORYQUERYARGUMENTS_CONTRACTID,&rv); NS_ENSURE_SUCCESS(rv, rv); @@ -1013,8 +1013,7 @@ NS_IMETHODIMP nsAbMDBDirectory::OnSearchFinished(PRInt32 aResult, NS_IMETHODIMP nsAbMDBDirectory::OnSearchFoundCard(nsIAbCard* card) { - nsVoidKey key (static_cast(card)); - mSearchCache.Put (&key, card); + mSearchCache.Put(card, card); // TODO // Search is synchronous so asserting on the diff --git a/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.h b/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.h index 0a7e0f0914a..613f2e10d4c 100644 --- a/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.h +++ b/mozilla/mailnews/addrbook/src/nsAbMDBDirectory.h @@ -52,7 +52,7 @@ #include "nsDirPrefs.h" #include "nsIAbDirectorySearch.h" #include "nsIAbDirSearchListener.h" -#include "nsHashtable.h" +#include "nsInterfaceHashtable.h" #include "nsAbDirectoryRDFResource.h" #include "nsIAddrDBListener.h" @@ -126,7 +126,7 @@ protected: PRInt32 mContext; PRBool mPerformingQuery; - nsSupportsHashtable mSearchCache; + nsInterfaceHashtable mSearchCache; }; #endif