virtual ~nsHistoryDataSource(void) { NS_RELEASE(mInner); nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);
nsHistoryDataSource::~nsHistoryDataSource(void) { gRDFService->UnregisterDataSource(this); nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);  NS_IF_RELEASE(mInner); NS_IF_RELEASE(mResourcePage); NS_IF_RELEASE(mResourceDate); NS_IF_RELEASE(mResourceTitle); NS_IF_RELEASE(mResourceReferer); NS_IF_RELEASE(mResourceChild); NS_IF_RELEASE(mResourceHistoryBySite);  if (mLastVisitDateHash) PL_HashTableDestroy(mLastVisitDateHash);  PRInt32 index; for (index = mPendingWrites.Count() - 1; index >= 0; --index) { HistoryEntry* entry = (HistoryEntry*) mPendingWrites.ElementAt(index); delete entry;
    virtual ~nsHistoryDataSource(void)    {        NS_RELEASE(mInner);        nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);    }