if (!nsCRT::strcmp(aTopic, NS_LITERAL_STRING("profile-before-change").get())) {
if (!nsCRT::strcmp(aTopic, "profile-before-change")) {
LocalStoreImpl::Observe(nsISupports *aSubject, const PRUnichar *aTopic, const PRUnichar *someData){    nsresult rv = NS_OK;    if (!nsCRT::strcmp(aTopic, NS_LITERAL_STRING("profile-before-change").get())) {        // Write out the old datasource's contents.        if (mInner) {            nsCOMPtr<nsIRDFRemoteDataSource> remote = do_QueryInterface(mInner);            if (remote)                remote->Flush();        }        // Create an in-memory datasource for use while we're        // profile-less.        mInner = do_CreateInstance(NS_RDF_DATASOURCE_CONTRACTID_PREFIX "in-memory-datasource");        if (!nsCRT::strcmp(someData, NS_LITERAL_STRING("shutdown-cleanse").get())) {            nsCOMPtr<nsIFile> aFile;            rv = NS_GetSpecialDirectory(NS_APP_LOCALSTORE_50_FILE, getter_AddRefs(aFile));            if (NS_SUCCEEDED(rv))                rv = aFile->Remove(PR_FALSE);        }    }    else if (!nsCRT::strcmp(aTopic, NS_LITERAL_STRING("profile-do-change").get())) {        rv = LoadData();    }    return rv;}