if (nsnull != mObservers) { for (PRInt32 i = mObservers->Count() - 1; i >= 0; --i) { nsIRDFObserver* obs = (nsIRDFObserver*) mObservers->ElementAt(i); NS_RELEASE(obs); } delete mObservers; mObservers = nsnull; }
delete mObservers;
FileSystemDataSource::~FileSystemDataSource (void){    gRDFService->UnregisterDataSource(this);    PL_strfree(mURI);    if (nsnull != mObservers)	{            for (PRInt32 i = mObservers->Count() - 1; i >= 0; --i)		{                    nsIRDFObserver* obs = (nsIRDFObserver*) mObservers->ElementAt(i);                    NS_RELEASE(obs);		}            delete mObservers;            mObservers = nsnull;	}    if (--gRefCnt == 0) {        NS_RELEASE(kNC_FileSystemRoot);        NS_RELEASE(kNC_Child);        NS_RELEASE(kNC_Name);        NS_RELEASE(kNC_URL);	NS_RELEASE(kNC_FileSystemObject);	NS_RELEASE(kNC_pulse);        NS_RELEASE(kRDF_InstanceOf);        NS_RELEASE(kRDF_type);        gFileSystemDataSource = nsnull;        nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);        gRDFService = nsnull;    }}