зеркало из https://github.com/mozilla/gecko-dev.git
Fix bug 11511 and more "remove address book" backend
This commit is contained in:
Родитель
f72125c88e
Коммит
57ac64d4d7
|
@ -140,10 +140,9 @@ nsAbRDFDataSource::nsAbRDFDataSource():
|
|||
|
||||
nsAbRDFDataSource::~nsAbRDFDataSource (void)
|
||||
{
|
||||
mRDFService->UnregisterDataSource(this);
|
||||
|
||||
if (mRDFService)
|
||||
{
|
||||
mRDFService->UnregisterDataSource(this);
|
||||
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService);
|
||||
mRDFService = nsnull;
|
||||
}
|
||||
|
|
|
@ -66,7 +66,12 @@ nsAbCardDataSource::nsAbCardDataSource():
|
|||
|
||||
nsAbCardDataSource::~nsAbCardDataSource (void)
|
||||
{
|
||||
mRDFService->UnregisterDataSource(this);
|
||||
if (mRDFService)
|
||||
{
|
||||
mRDFService->UnregisterDataSource(this);
|
||||
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService);
|
||||
mRDFService = nsnull;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
NS_WITH_SERVICE(nsIAddrBookSession, abSession, kAddrBookSessionCID, &rv);
|
||||
|
@ -82,11 +87,6 @@ nsAbCardDataSource::~nsAbCardDataSource (void)
|
|||
NS_RELEASE2(kNC_Delete, refcnt);
|
||||
NS_RELEASE2(kNC_NewCard, refcnt);
|
||||
|
||||
if (mRDFService)
|
||||
{
|
||||
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService);
|
||||
mRDFService = nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
nsresult nsAbCardDataSource::Init()
|
||||
|
|
|
@ -1909,8 +1909,19 @@ nsresult DIR_DeleteServerFromList(DIR_Server *server)
|
|||
|
||||
if (dbPath)
|
||||
{
|
||||
nsCOMPtr<nsIAddrDatabase> database;
|
||||
|
||||
nsFileSpec prefFile = (*dbPath);
|
||||
prefFile += server->fileName;
|
||||
|
||||
// close file before delete it
|
||||
NS_WITH_SERVICE(nsIAddrDatabase, addrDBFactory, kAddressBookDBCID, &rv);
|
||||
|
||||
if (NS_SUCCEEDED(rv) && addrDBFactory)
|
||||
rv = addrDBFactory->Open(dbPath, PR_FALSE, getter_AddRefs(database), PR_TRUE);
|
||||
if (database)
|
||||
database->ForceClosed();
|
||||
|
||||
prefFile.Delete(PR_FALSE);
|
||||
|
||||
nsVoidArray *dirList = DIR_GetDirectories();
|
||||
|
|
|
@ -79,8 +79,14 @@ nsAbDirectoryDataSource::nsAbDirectoryDataSource():
|
|||
|
||||
nsAbDirectoryDataSource::~nsAbDirectoryDataSource (void)
|
||||
{
|
||||
mRDFService->UnregisterDataSource(this);
|
||||
|
||||
if (mRDFService)
|
||||
{
|
||||
mRDFService->UnregisterDataSource(this);
|
||||
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService);
|
||||
mRDFService = nsnull;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
NS_WITH_SERVICE(nsIAddrBookSession, abSession, kAddrBookSessionCID, &rv);
|
||||
if(NS_SUCCEEDED(rv))
|
||||
|
@ -94,12 +100,7 @@ nsAbDirectoryDataSource::~nsAbDirectoryDataSource (void)
|
|||
|
||||
NS_RELEASE2(kNC_Delete, refcnt);
|
||||
NS_RELEASE2(kNC_NewDirectory, refcnt);
|
||||
if (mRDFService)
|
||||
{
|
||||
nsServiceManager::ReleaseService(kRDFServiceCID, mRDFService);
|
||||
mRDFService = nsnull;
|
||||
}
|
||||
|
||||
|
||||
/* free all directories */
|
||||
DIR_ShutDown();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче