From 7c2ab7cf47e4883c8457fb1ac2f9311cd38c5136 Mon Sep 17 00:00:00 2001 From: "pete%alphanumerica.com" Date: Tue, 11 Dec 2001 03:25:32 +0000 Subject: [PATCH] b=106949, r=ccarlen, sr=jband Bad use of nsIFile in component manager --pete --- xpcom/components/nsComponentManager.cpp | 32 ++++++------------------- xpcom/components/nsComponentManager.h | 1 - 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp index eccac7d203fa..67d2a7cc08e5 100644 --- a/xpcom/components/nsComponentManager.cpp +++ b/xpcom/components/nsComponentManager.cpp @@ -705,18 +705,6 @@ nsComponentManagerImpl::PlatformInit(void) if (!mComponentsDir) return NS_ERROR_OUT_OF_MEMORY; - char* componentDescriptor; - mComponentsDir->GetPath(&componentDescriptor); - if (!componentDescriptor) - return NS_ERROR_NULL_POINTER; - - mComponentsOffset = strlen(componentDescriptor); - - if (componentDescriptor) - nsMemory::Free(componentDescriptor); - - - if (mNativeComponentLoader) { /* now that we have the registry, Init the native loader */ rv = mNativeComponentLoader->Init(this, mRegistry); @@ -2102,30 +2090,24 @@ nsComponentManagerImpl::RegistryLocationForSpec(nsIFile *aSpec, PRBool containedIn; mComponentsDir->Contains(aSpec, PR_TRUE, &containedIn); - char *persistentDescriptor; - if (containedIn){ - rv = aSpec->GetPath(&persistentDescriptor); - if (NS_FAILED(rv)) - return rv; + nsXPIDLCString relativeLocation; + if (NS_FAILED(rv = aSpec->GetLeafName(getter_Copies(relativeLocation)))) + return rv; - char* relativeLocation = persistentDescriptor + mComponentsOffset + 1; - - rv = MakeRegistryName(relativeLocation, XPCOM_RELCOMPONENT_PREFIX, + rv = MakeRegistryName(relativeLocation.get(), XPCOM_RELCOMPONENT_PREFIX, aRegistryName); } else { + nsXPIDLCString absoluteLocation; /* absolute names include volume info on Mac, so persistent descriptor */ - rv = aSpec->GetPath(&persistentDescriptor); + rv = aSpec->GetPath(getter_Copies(absoluteLocation)); if (NS_FAILED(rv)) return rv; - rv = MakeRegistryName(persistentDescriptor, XPCOM_ABSCOMPONENT_PREFIX, + rv = MakeRegistryName(absoluteLocation.get(), XPCOM_ABSCOMPONENT_PREFIX, aRegistryName); } - if (persistentDescriptor) - nsMemory::Free(persistentDescriptor); - return rv; } diff --git a/xpcom/components/nsComponentManager.h b/xpcom/components/nsComponentManager.h index 80f375d49407..df4b9743c10c 100644 --- a/xpcom/components/nsComponentManager.h +++ b/xpcom/components/nsComponentManager.h @@ -205,7 +205,6 @@ protected: nsNativeComponentLoader *mNativeComponentLoader; nsIComponentLoader *mStaticComponentLoader; nsCOMPtr mComponentsDir; - PRInt32 mComponentsOffset; // Shutdown #define NS_SHUTDOWN_NEVERHAPPENED 0