needed to fix bug 46707. We need to autoreg the native loader before the interface info manager (iim) so that the iim can use registered components; e.g. libjar. r=shaver@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@78565 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -1986,11 +1986,9 @@ nsComponentManagerImpl::AutoRegisterImpl(PRInt32 when, nsIFile *inDirSpec)
|
||||
if (NS_FAILED(rv)) return rv; // XXX translate error code?
|
||||
}
|
||||
|
||||
// Force the InterfaceInfoManager to do its AutoReg first.
|
||||
nsCOMPtr<nsIInterfaceInfoManager> iim =
|
||||
dont_AddRef(XPTI_GetInterfaceInfoManager());
|
||||
|
||||
|
||||
if (!iim)
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
|
||||
@@ -2009,11 +2007,13 @@ nsComponentManagerImpl::AutoRegisterImpl(PRInt32 when, nsIFile *inDirSpec)
|
||||
}
|
||||
}
|
||||
|
||||
rv = iim->AutoRegisterInterfaces();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
/* do the native loader first, so we can find other loaders */
|
||||
rv = mNativeComponentLoader->AutoRegisterComponents((PRInt32)when, dir);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
/* do InterfaceInfoManager after native loader so it can use components. */
|
||||
rv = iim->AutoRegisterInterfaces();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsCOMPtr<nsICategoryManager> catman =
|
||||
do_GetService(NS_CATEGORYMANAGER_PROGID, &rv);
|
||||
@@ -2090,7 +2090,7 @@ AutoRegisterComponent_enumerate(nsHashKey *key, void *aData, void *aClosure)
|
||||
&didRegister);
|
||||
|
||||
if (NS_SUCCEEDED(closure->status) && didRegister)
|
||||
return PR_FALSE; // Stop enumeration as we are done
|
||||
return PR_FALSE; // Stop enumeration as we are done
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user