shrike Linux/i386 2.2.5 Clobber apprunner on 07/16 13:03
This commit is contained in:
dougt%netscape.com 1999-07-16 22:00:24 +00:00
Родитель 4ee45defd5
Коммит 37e9f5f89b
9 изменённых файлов: 45 добавлений и 99 удалений

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

@ -335,23 +335,23 @@ void ReplaceScheduledFiles(void)
/* replace files if any listed */ /* replace files if any listed */
if (REGERR_OK == NR_RegGetKey(reg, ROOTKEY_PRIVATE, REG_REPLACE_LIST_KEY, &key)) if (REGERR_OK == NR_RegGetKey(reg, ROOTKEY_PRIVATE, REG_REPLACE_LIST_KEY, &key))
{ {
char tmpfile[MAXREGNAMELEN]; char dummyFile[MAXREGNAMELEN];
char target[MAXREGNAMELEN]; char target[MAXREGNAMELEN];
state = 0; state = 0;
while (REGERR_OK == NR_RegEnumEntries(reg, key, &state, tmpfile, sizeof(tmpfile), NULL )) while (REGERR_OK == NR_RegEnumEntries(reg, key, &state, dummyFile, sizeof(dummyFile), NULL ))
{ {
nsFileSpec replaceFile(tmpfile); nsFileSpec replaceFile(dummyFile);
if (! replaceFile.Exists() ) if (! replaceFile.Exists() )
{ {
NR_RegDeleteEntry( reg, key, tmpfile ); NR_RegDeleteEntry( reg, key, dummyFile );
} }
else if ( REGERR_OK != NR_RegGetEntryString( reg, key, tmpfile, target, sizeof(target) ) ) else if ( REGERR_OK != NR_RegGetEntryString( reg, key, dummyFile, target, sizeof(target) ) )
{ {
/* can't read target filename, corruption? */ /* can't read target filename, corruption? */
NR_RegDeleteEntry( reg, key, tmpfile ); NR_RegDeleteEntry( reg, key, dummyFile );
} }
else else
{ {
@ -371,13 +371,13 @@ void ReplaceScheduledFiles(void)
replaceFile.Rename(leafName); replaceFile.Rename(leafName);
nsCRT::free(leafName); nsCRT::free(leafName);
NR_RegDeleteEntry( reg, key, tmpfile ); NR_RegDeleteEntry( reg, key, dummyFile );
} }
} }
} }
} }
/* delete list node if empty */ /* delete list node if empty */
if (REGERR_NOMORE == NR_RegEnumEntries(reg, key, &state, tmpfile, sizeof(tmpfile), NULL )) if (REGERR_NOMORE == NR_RegEnumEntries(reg, key, &state, dummyFile, sizeof(dummyFile), NULL ))
{ {
NR_RegDeleteKey(reg, ROOTKEY_PRIVATE, REG_REPLACE_LIST_KEY); NR_RegDeleteKey(reg, ROOTKEY_PRIVATE, REG_REPLACE_LIST_KEY);
} }

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

@ -162,12 +162,13 @@ nsInstall::~nsInstall()
delete mVersionInfo; delete mVersionInfo;
} }
PRInt32
nsInstall::SetScriptObject(void *aScriptObject) nsInstall::SetScriptObject(void *aScriptObject)
{ {
mScriptObject = (JSObject*) aScriptObject; mScriptObject = (JSObject*) aScriptObject;
return NS_OK; return NS_OK;
} }
#ifdef _WINDOWS #ifdef _WINDOWS
nsInstall::SaveWinRegPrototype(void *aScriptObject) nsInstall::SaveWinRegPrototype(void *aScriptObject)
{ {
@ -1616,7 +1617,6 @@ void
nsInstall::CurrentUserNode(nsString& userRegNode) nsInstall::CurrentUserNode(nsString& userRegNode)
{ {
char *profname; char *profname;
int len = MAXREGNAMELEN;
nsIPref * prefs; nsIPref * prefs;
nsresult rv = nsServiceManager::GetService(kPrefsCID, nsresult rv = nsServiceManager::GetService(kPrefsCID,

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

@ -130,7 +130,9 @@ char* nsInstallDelete::toString()
if (mDeleteStatus == DELETE_COMPONENT) if (mDeleteStatus == DELETE_COMPONENT)
{ {
sprintf( buffer, nsInstallResources::GetDeleteComponentString(), nsAutoCString(mRegistryName)); char* temp = mRegistryName.ToNewCString();
sprintf( buffer, nsInstallResources::GetDeleteComponentString(), temp);
delete [] temp;
} }
else else
{ {

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

@ -68,7 +68,6 @@ nsInstallFile::nsInstallFile(nsInstall* inInstall,
/* Check for existence of the newer version */ /* Check for existence of the newer version */
PRBool versionNewer = PR_FALSE; // Is this a newer version
char* qualifiedRegNameString = inComponentName.ToNewCString(); char* qualifiedRegNameString = inComponentName.ToNewCString();
if ( (forceInstall == PR_FALSE ) && (inVInfo != "") && ( VR_ValidateComponent( qualifiedRegNameString ) == 0 ) ) if ( (forceInstall == PR_FALSE ) && (inVInfo != "") && ( VR_ValidateComponent( qualifiedRegNameString ) == 0 ) )

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

@ -964,13 +964,13 @@ InstallGetLastError(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval
PR_STATIC_CALLBACK(JSBool) PR_STATIC_CALLBACK(JSBool)
InstallGetWinProfile(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallGetWinProfile(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);
nsAutoString b0;
nsAutoString b1;
*rval = JSVAL_NULL; *rval = JSVAL_NULL;
#ifdef _WINDOWS #ifdef _WINDOWS
nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);
nsAutoString b0;
nsAutoString b1;
// If there's no private data, this must be the prototype, so ignore // If there's no private data, this must be the prototype, so ignore
if(nsnull == nativeThis) if(nsnull == nativeThis)
{ {
@ -1007,11 +1007,13 @@ InstallGetWinProfile(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsva
PR_STATIC_CALLBACK(JSBool) PR_STATIC_CALLBACK(JSBool)
InstallGetWinRegistry(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallGetWinRegistry(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);
*rval = JSVAL_NULL; *rval = JSVAL_NULL;
#ifdef _WINDOWS #ifdef _WINDOWS
nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
// If there's no private data, this must be the prototype, so ignore // If there's no private data, this must be the prototype, so ignore
if(nsnull == nativeThis) if(nsnull == nativeThis)
{ {
@ -2390,74 +2392,6 @@ static JSFunctionSpec InstallMethods[] =
#if 0
//
// Install constructor
//
PR_STATIC_CALLBACK(JSBool)
Install(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
return JS_FALSE;
}
//
// Install class initialization
//
PRInt32 InitXPInstallObjects(nsIScriptContext *aContext, const char* jarfile, const char* args)
{
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
JSObject *global = JS_GetGlobalObject(jscontext);
JSObject *installObject = nsnull;
JSObject *winRegPrototype = nsnull;
JSObject *winProfilePrototype = nsnull;
nsInstall *nativeInstallObject;
installObject = JS_InitClass( jscontext, // context
global, // global object
nsnull, // parent proto
&InstallClass, // JSClass
nsnull, // JSNative ctor
0, // ctor args
nsnull, // proto props
nsnull, // proto funcs
InstallProperties, // ctor props (static)
InstallMethods); // ctor funcs (static)
if (nsnull == installObject)
{
return NS_ERROR_FAILURE;
}
if ( PR_FALSE == JS_DefineConstDoubles(jscontext, installObject, install_constants) )
return NS_ERROR_FAILURE;
nativeInstallObject = new nsInstall();
nativeInstallObject->SetJarFileLocation(jarfile);
nativeInstallObject->SetInstallArguments(args);
JS_SetPrivate(jscontext, installObject, nativeInstallObject);
nativeInstallObject->SetScriptObject(installObject);
#ifdef _WINDOWS
if(NS_OK != InitWinRegPrototype(jscontext, global, &winRegPrototype))
{
return NS_ERROR_FAILURE;
}
nativeInstallObject->SaveWinRegPrototype(winRegPrototype);
if(NS_OK != InitWinProfilePrototype(jscontext, global, &winRegPrototype))
{
return NS_ERROR_FAILURE;
}
nativeInstallObject->SaveWinProfilePrototype(winProfilePrototype);
#endif
return NS_OK;
}
#endif
PRInt32 InitXPInstallObjects(JSContext *jscontext, PRInt32 InitXPInstallObjects(JSContext *jscontext,
@ -2467,6 +2401,8 @@ PRInt32 InitXPInstallObjects(JSContext *jscontext,
const PRUnichar* args) const PRUnichar* args)
{ {
JSObject *installObject = nsnull; JSObject *installObject = nsnull;
JSObject *winRegPrototype = nsnull;
JSObject *winProfilePrototype = nsnull;
nsInstall *nativeInstallObject; nsInstall *nativeInstallObject;
installObject = JS_InitClass( jscontext, // context installObject = JS_InitClass( jscontext, // context

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

@ -109,7 +109,6 @@ PR_STATIC_CALLBACK(JSBool)
InstallTriggerGlobalUpdateEnabled(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallTriggerGlobalUpdateEnabled(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj); nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
PRBool nativeRet; PRBool nativeRet;
*rval = JSVAL_NULL; *rval = JSVAL_NULL;
@ -254,7 +253,6 @@ PR_STATIC_CALLBACK(JSBool)
InstallTriggerGlobalConditionalSoftwareUpdate(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallTriggerGlobalConditionalSoftwareUpdate(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj); nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
PRInt32 nativeRet; PRInt32 nativeRet;
nsAutoString b0; nsAutoString b0;
nsAutoString b1; nsAutoString b1;
@ -409,7 +407,6 @@ PR_STATIC_CALLBACK(JSBool)
InstallTriggerGlobalCompareVersion(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallTriggerGlobalCompareVersion(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj); nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
PRInt32 nativeRet; PRInt32 nativeRet;
nsAutoString b0; nsAutoString b0;
nsAutoString b1str; nsAutoString b1str;
@ -586,7 +583,6 @@ nsresult NS_InitInstallTriggerGlobalClass(nsIScriptContext *aContext, void **aPr
JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
JSObject *proto = nsnull; JSObject *proto = nsnull;
JSObject *constructor = nsnull; JSObject *constructor = nsnull;
JSObject *parent_proto = nsnull;
JSObject *global = JS_GetGlobalObject(jscontext); JSObject *global = JS_GetGlobalObject(jscontext);
jsval vp; jsval vp;

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

@ -271,7 +271,6 @@ PR_STATIC_CALLBACK(JSBool)
InstallVersionInit(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallVersionInit(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsIDOMInstallVersion *nativeThis = (nsIDOMInstallVersion*)JS_GetPrivate(cx, obj); nsIDOMInstallVersion *nativeThis = (nsIDOMInstallVersion*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsAutoString b0; nsAutoString b0;
*rval = JSVAL_NULL; *rval = JSVAL_NULL;
@ -306,7 +305,6 @@ PR_STATIC_CALLBACK(JSBool)
InstallVersionToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallVersionToString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsIDOMInstallVersion *nativeThis = (nsIDOMInstallVersion*)JS_GetPrivate(cx, obj); nsIDOMInstallVersion *nativeThis = (nsIDOMInstallVersion*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
nsAutoString nativeRet; nsAutoString nativeRet;
*rval = JSVAL_NULL; *rval = JSVAL_NULL;
@ -340,7 +338,6 @@ PR_STATIC_CALLBACK(JSBool)
InstallVersionCompareTo(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) InstallVersionCompareTo(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{ {
nsIDOMInstallVersion *nativeThis = (nsIDOMInstallVersion*)JS_GetPrivate(cx, obj); nsIDOMInstallVersion *nativeThis = (nsIDOMInstallVersion*)JS_GetPrivate(cx, obj);
JSBool rBool = JS_FALSE;
PRInt32 nativeRet; PRInt32 nativeRet;
nsString b0str; nsString b0str;
PRInt32 b0int; PRInt32 b0int;
@ -573,7 +570,6 @@ nsresult NS_InitInstallVersionClass(nsIScriptContext *aContext, void **aPrototyp
JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
JSObject *proto = nsnull; JSObject *proto = nsnull;
JSObject *constructor = nsnull; JSObject *constructor = nsnull;
JSObject *parent_proto = nsnull;
JSObject *global = JS_GetGlobalObject(jscontext); JSObject *global = JS_GetGlobalObject(jscontext);
jsval vp; jsval vp;

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

@ -83,6 +83,20 @@ static NS_DEFINE_IID(kIInstallVersion_IID, NS_IDOMINSTALLVERSION_IID);
static NS_DEFINE_IID(kInstallVersion_CID, NS_SoftwareUpdateInstallVersion_CID); static NS_DEFINE_IID(kInstallVersion_CID, NS_SoftwareUpdateInstallVersion_CID);
nsSoftwareUpdate* nsSoftwareUpdate::mInstance = nsnull;
nsSoftwareUpdate *
nsSoftwareUpdate::GetInstance()
{
if (mInstance == NULL)
{
mInstance = new nsSoftwareUpdate();
}
return mInstance;
}
nsSoftwareUpdate::nsSoftwareUpdate() nsSoftwareUpdate::nsSoftwareUpdate()
{ {
@ -293,7 +307,8 @@ nsSoftwareUpdate::InstallJar( nsIFileSpec* aLocalFile,
NS_IMETHODIMP NS_IMETHODIMP
nsSoftwareUpdate::InstallJarCallBack() nsSoftwareUpdate::InstallJarCallBack()
{ {
PR_Lock(mLock); //PR_Lock(mLock); we are already lock by RunNextInstall().
nsInstallInfo *nextInstall = (nsInstallInfo*)mJarInstallQueue->Get(0); nsInstallInfo *nextInstall = (nsInstallInfo*)mJarInstallQueue->Get(0);
if (nextInstall != nsnull) if (nextInstall != nsnull)
@ -302,7 +317,7 @@ nsSoftwareUpdate::InstallJarCallBack()
mJarInstallQueue->Remove(0); mJarInstallQueue->Remove(0);
mInstalling = PR_FALSE; mInstalling = PR_FALSE;
PR_Unlock(mLock); //PR_Unlock(mLock);
return RunNextInstall(); return RunNextInstall();
@ -358,6 +373,8 @@ nsSoftwareUpdateFactory::~nsSoftwareUpdateFactory(void)
{ {
} }
NS_IMPL_ISUPPORTS(nsSoftwareUpdateFactory,kIFactoryIID) NS_IMPL_ISUPPORTS(nsSoftwareUpdateFactory,kIFactoryIID)
NS_IMETHODIMP NS_IMETHODIMP
@ -370,7 +387,7 @@ nsSoftwareUpdateFactory::CreateInstance(nsISupports *aOuter, REFNSIID aIID, void
*aResult = NULL; *aResult = NULL;
nsSoftwareUpdate *inst = new nsSoftwareUpdate(); nsSoftwareUpdate *inst = nsSoftwareUpdate::GetInstance();
if (inst == NULL) if (inst == NULL)
return NS_ERROR_OUT_OF_MEMORY; return NS_ERROR_OUT_OF_MEMORY;

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

@ -24,7 +24,7 @@ class nsSoftwareUpdate: public nsIAppShellComponent, public nsISoftwareUpdate
public: public:
NS_DEFINE_STATIC_CID_ACCESSOR( NS_SoftwareUpdate_CID ); NS_DEFINE_STATIC_CID_ACCESSOR( NS_SoftwareUpdate_CID );
static nsSoftwareUpdate *GetInstance();
nsSoftwareUpdate(); nsSoftwareUpdate();
virtual ~nsSoftwareUpdate(); virtual ~nsSoftwareUpdate();
@ -45,7 +45,7 @@ class nsSoftwareUpdate: public nsIAppShellComponent, public nsISoftwareUpdate
private: private:
static nsSoftwareUpdate* mInstance;
nsresult RunNextInstall(); nsresult RunNextInstall();
nsresult DeleteScheduledNodes(); nsresult DeleteScheduledNodes();