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

This commit is contained in:
jband%netscape.com 2000-09-09 01:36:18 +00:00
Родитель 23ab5863e0
Коммит ab447aa9ef
1 изменённых файлов: 6 добавлений и 6 удалений

Просмотреть файл

@ -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;
}