Mac specific: No longer autoreg'ing. Now supplying reg file spec and xpistub dir when initializing XPCOM utilizing dp's new NS_InitXPCOM interface. Thanks dp.

git-svn-id: svn://10.0.0.236/trunk@48045 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
sgehani%netscape.com 1999-09-17 23:11:31 +00:00
parent c9d39f6fa7
commit 4c38b5e36c

View File

@ -45,6 +45,10 @@
#include <direct.h>
#endif
#ifdef XP_MAC
#define COMPONENT_REG "\pComponent Registry"
#include "MoreFilesExtras.h"
#endif
//------------------------------------------------------------------------
@ -80,7 +84,24 @@ PR_PUBLIC_API(nsresult) XPI_Init(
//--------------------------------------------------------------------
// Initialize XPCOM and AutoRegister() its components
//--------------------------------------------------------------------
#ifdef XP_MAC
OSErr err = noErr;
long xpiStubDirID = 0;
Boolean isDir = false;
FSSpec fsRegFile;
nsFileSpec nsfsRegFile;
FSpGetDirectoryID(&aXPIStubDir, &xpiStubDirID, &isDir);
err = FSMakeFSSpec(aXPIStubDir.vRefNum, xpiStubDirID, COMPONENT_REG, &fsRegFile);
if (err!=noErr)
return NS_ERROR_UNEXPECTED;
nsfsRegFile = fsRegFile;
nsfsDirectory = aXPIStubDir;
rv = NS_InitXPCOM(&gServiceMgr, &nsfsRegFile, &nsfsDirectory);
#else
rv = NS_InitXPCOM(&gServiceMgr, NULL, NULL);
#endif
if (!NS_SUCCEEDED(rv))
return rv;
@ -110,13 +131,8 @@ PR_PUBLIC_API(nsresult) XPI_Init(
rv = nsComponentManager::AutoRegister(nsIComponentManager::NS_Startup, nsIfsDirectory);
#elif defined(XP_MAC)
rv = NS_NewFileSpecWithSpec(aXPIStubDir, getter_AddRefs(nsIfsDirectory));
if (NS_FAILED(rv))
return rv;
rv = nsComponentManager::AutoRegister(nsIComponentManager::NS_Startup, nsIfsDirectory);
// XXX Mac handling already taken care of in last XP_MAC ifdef so do nothing
// XXX Remove this ifdef when Win32 also points to pre-populated comp reg
#else
rv = nsComponentManager::AutoRegister(nsIComponentManager::NS_Startup, 0);
#endif