diff --git a/mailnews/addrbook/src/nsAbDirectory.cpp b/mailnews/addrbook/src/nsAbDirectory.cpp index 60b78bd89109..7ac00c51a85a 100644 --- a/mailnews/addrbook/src/nsAbDirectory.cpp +++ b/mailnews/addrbook/src/nsAbDirectory.cpp @@ -673,17 +673,15 @@ NS_IMETHODIMP nsAbDirectory::DeleteDirectory(nsIAbDirectory *directory) { //it's a mailing list nsresult rv = NS_OK; - char *uri; - rv = directory->GetDirUri(&uri); + nsXPIDLCString uri; + rv = directory->GetDirUri(getter_Copies(uri)); if (NS_FAILED(rv)) return rv; nsCOMPtr database; NS_WITH_SERVICE(nsIAddressBook, addresBook, kAddrBookCID, &rv); if (NS_SUCCEEDED(rv)) { - rv = addresBook->GetAbDatabaseFromURI(uri, getter_AddRefs(database)); - nsMemory::Free(uri); - + rv = addresBook->GetAbDatabaseFromURI((const char *)uri, getter_AddRefs(database)); if (NS_SUCCEEDED(rv)) rv = database->DeleteMailList(directory, PR_TRUE); @@ -728,15 +726,14 @@ NS_IMETHODIMP nsAbDirectory::HasDirectory(nsIAbDirectory *dir, PRBool *hasDir) dir->GetIsMailList(&bIsMailingList); if (bIsMailingList) { - char *uri; - rv = dir->GetDirUri(&uri); + nsXPIDLCString uri; + rv = dir->GetDirUri(getter_Copies(uri)); if (NS_FAILED(rv)) return rv; nsCOMPtr database; NS_WITH_SERVICE(nsIAddressBook, addresBook, kAddrBookCID, &rv); if (NS_SUCCEEDED(rv)) { - rv = addresBook->GetAbDatabaseFromURI(uri, getter_AddRefs(database)); - nsMemory::Free(uri); + rv = addresBook->GetAbDatabaseFromURI((const char *)uri, getter_AddRefs(database)); } if(NS_SUCCEEDED(rv) && database) { @@ -792,9 +789,9 @@ NS_IMETHODIMP nsAbDirectory::GetDirUri(char **uri) if (uri) { if (mURI) - *uri = PL_strdup(mURI); + *uri = nsCRT::strdup(mURI); else - *uri = PL_strdup(""); + *uri = nsCRT::strdup(""); return NS_OK; } else diff --git a/mailnews/addrbook/src/nsDirectoryDataSource.cpp b/mailnews/addrbook/src/nsDirectoryDataSource.cpp index 8d3c1e07ab1e..42c254fd9331 100644 --- a/mailnews/addrbook/src/nsDirectoryDataSource.cpp +++ b/mailnews/addrbook/src/nsDirectoryDataSource.cpp @@ -551,12 +551,11 @@ nsresult nsAbDirectoryDataSource::createDirectoryNameNode(nsIAbDirectory *direct nsresult nsAbDirectoryDataSource::createDirectoryUriNode(nsIAbDirectory *directory, nsIRDFNode **target) { - char *uri; - nsresult rv = directory->GetDirUri(&uri); + nsXPIDLCString uri; + nsresult rv = directory->GetDirUri(getter_Copies(uri)); if (NS_FAILED(rv)) return rv; nsString nameString; nameString.AssignWithConversion(uri); createNode(nameString, target); - nsMemory::Free(uri); return NS_OK; } diff --git a/mailnews/compose/src/nsMsgCompose.cpp b/mailnews/compose/src/nsMsgCompose.cpp index fa58388d29cf..48dc18a98ebe 100644 --- a/mailnews/compose/src/nsMsgCompose.cpp +++ b/mailnews/compose/src/nsMsgCompose.cpp @@ -2330,7 +2330,7 @@ static nsresult OpenAddressBook(const char * dbUri, nsIAddrDatabase** aDatabase, } -nsresult nsMsgCompose::GetABDirectories(char * dirUri, nsISupportsArray* directoriesArray, PRBool searchSubDirectory) +nsresult nsMsgCompose::GetABDirectories(const char * dirUri, nsISupportsArray* directoriesArray, PRBool searchSubDirectory) { static PRBool collectedAddressbookFound; if (nsCRT::strcmp(dirUri, kDirectoryRoot) == 0) @@ -2369,20 +2369,20 @@ nsresult nsMsgCompose::GetABDirectories(char * dirUri, nsISupportsArray* directo if (NS_SUCCEEDED(directory->GetIsMailList(&bIsMailList)) && bIsMailList) continue; - char* uri; - rv = directory->GetDirUri(&uri); + nsXPIDLCString uri; + rv = directory->GetDirUri(getter_Copies(uri)); if (NS_FAILED(rv)) return rv; PRInt32 pos; - if (nsCRT::strcmp(uri, kPersonalAddressbookUri) == 0) + if (nsCRT::strcmp((const char *)uri, kPersonalAddressbookUri) == 0) pos = 0; else { PRUint32 count = 0; directoriesArray->Count(&count); - if (PL_strcmp(uri, kCollectedAddressbookUri) == 0) + if (PL_strcmp((const char *)uri, kCollectedAddressbookUri) == 0) { collectedAddressbookFound = PR_TRUE; pos = count; @@ -2397,9 +2397,7 @@ nsresult nsMsgCompose::GetABDirectories(char * dirUri, nsISupportsArray* directo } directoriesArray->InsertElementAt(directory, pos); - rv = GetABDirectories(uri, directoriesArray, PR_TRUE); - - PR_Free(uri); + rv = GetABDirectories((const char *)uri, directoriesArray, PR_TRUE); } } } while (NS_SUCCEEDED(subDirectories->Next())); @@ -2587,12 +2585,12 @@ nsresult nsMsgCompose::CheckAndPopulateRecipients(PRBool populateMailList, PRBoo if (NS_FAILED(rv)) return rv; - char* uri; - rv = abDirectory->GetDirUri(&uri); + nsXPIDLCString uri; + rv = abDirectory->GetDirUri(getter_Copies(uri)); if (NS_FAILED(rv)) return rv; - rv = OpenAddressBook(uri, getter_AddRefs(abDataBase), getter_AddRefs(abDirectory)); + rv = OpenAddressBook((const char *)uri, getter_AddRefs(abDataBase), getter_AddRefs(abDirectory)); if (NS_FAILED(rv) || !abDataBase || !abDirectory) continue; diff --git a/mailnews/compose/src/nsMsgCompose.h b/mailnews/compose/src/nsMsgCompose.h index 2b78a3dff6b8..38443977ca4a 100644 --- a/mailnews/compose/src/nsMsgCompose.h +++ b/mailnews/compose/src/nsMsgCompose.h @@ -97,7 +97,7 @@ class nsMsgCompose : public nsIMsgCompose nsresult _SendMsg(MSG_DeliverMode deliverMode, nsIMsgIdentity *identity); nsresult CreateMessage(const PRUnichar * originalMsgURI, MSG_ComposeType type, MSG_ComposeFormat format, nsIMsgCompFields* compFields); void CleanUpRecipients(nsString& recipients); - nsresult GetABDirectories(char * dirUri, nsISupportsArray* directoriesArray, PRBool searchSubDirectory); + nsresult GetABDirectories(const char * dirUri, nsISupportsArray* directoriesArray, PRBool searchSubDirectory); nsresult BuildMailListArray(nsIAddrDatabase* database, nsIAbDirectory* parentDir, nsISupportsArray* array); nsresult GetMailListAddresses(nsString& name, nsISupportsArray* mailListArray, nsISupportsArray** addresses); nsresult TagConvertible(nsIDOMNode *node, PRInt32 *_retval); diff --git a/mailnews/import/src/nsImportAddressBooks.cpp b/mailnews/import/src/nsImportAddressBooks.cpp index 79718f4cec90..17d5bc60007d 100644 --- a/mailnews/import/src/nsImportAddressBooks.cpp +++ b/mailnews/import/src/nsImportAddressBooks.cpp @@ -830,72 +830,7 @@ nsIAddrDatabase *GetAddressBook( const PRUnichar *name, PRBool makeNew) } } - return( pDatabase); - - /* - NS_WITH_SERVICE(nsIAbDirectory, directoryFactory, kAbDirectoryCID, &rv); - if (NS_FAILED(rv)) { - IMPORT_LOG0( "*** Unable to get nsIAbDirectory service.\n"); - return( nsnull); - } - - nsString sName = name; - char * cName = sName.ToNewCString(); - int nLen = nsCRT::strlen( cName) + 10; - char * nName = new char[nLen]; - char * pUri = nsnull; - - nsCOMPtr nodes; - directoryFactory->GetChildNodes( getter_AddRefs( nodes)); - if (nodes) { - nsISupports * pSupports = nsnull; - int cnt = 1; - rv = nodes->First(); - while(NS_SUCCEEDED( rv)) { - pSupports = nsnull; - rv = nodes->CurrentItem( &pSupports); - if (NS_SUCCEEDED( rv)) - rv = nodes->Next(); - if (pSupports) { - nsCOMPtr iFace( dont_AddRef( pSupports)); - nsCOMPtr dir( do_QueryInterface( pSupports)); - if (dir) { - char *dirName = nsnull; - dir->GetDirName( &dirName); - if (dirName && !nsCRT::strcasecmp( dirName, cName)) { - if (!makeNew) { - delete [] nName; - nsCRT::free( cName); - dir->GetDirUri( &pUri); - return( pUri); - } - - rv = nodes->First(); - nsCRT::free( cName); - cName = sName.ToNewCString(); - PR_snprintf( nName, nLen, "%s-%d", cName, cnt); - cnt++; - nsCRT::free( cName); - cName = nsCRT::strdup( nName); - } - } - } - } - } - - delete [] nName; - - - nsCOMPtr newDir; - rv = directoryFactory->CreateNewDirectory( cName, nsnull, getter_AddRefs( newDir)); - nsCRT::free( cName); - if (NS_SUCCEEDED( rv) && newDir) { - newDir->GetDirUri( &pUri); - } - - return( pUri); - */ } void nsImportGenericAddressBooks::ReportError( PRUnichar *pName, nsString *pStream)