зеркало из https://github.com/mozilla/gecko-dev.git
Bug 555894 - Don't use static strings when setting environment variables [r=vladimir, sr=benjamin]
--HG-- extra : rebase_source : 75e46dd8215cb761d4f96b441c05407d991d9d1b
This commit is contained in:
Родитель
7155758d89
Коммит
ccc0511d5b
|
@ -266,6 +266,16 @@ static char **gRestartArgv;
|
|||
#include "nsGTKToolkit.h"
|
||||
#endif
|
||||
|
||||
// Save literal putenv string to environment variable.
|
||||
static void
|
||||
SaveToEnv(const char *putenv)
|
||||
{
|
||||
char *expr = strdup(putenv);
|
||||
if (expr)
|
||||
PR_SetEnv(expr);
|
||||
// We intentionally leak |expr| here since it is required by PR_SetEnv.
|
||||
}
|
||||
|
||||
// Save the given word to the specified environment variable.
|
||||
static void
|
||||
SaveWordToEnv(const char *name, const nsACString & word)
|
||||
|
@ -1711,7 +1721,7 @@ static nsresult LaunchChild(nsINativeAppSupport* aNative,
|
|||
gRestartArgv[gRestartArgc] = nsnull;
|
||||
}
|
||||
|
||||
PR_SetEnv("MOZ_LAUNCHED_CHILD=1");
|
||||
SaveToEnv("MOZ_LAUNCHED_CHILD=1");
|
||||
|
||||
#if defined(XP_MACOSX)
|
||||
SetupMacCommandLine(gRestartArgc, gRestartArgv, PR_TRUE);
|
||||
|
@ -1986,7 +1996,7 @@ ShowProfileManager(nsIToolkitProfileService* aProfileSvc,
|
|||
PRBool offline = PR_FALSE;
|
||||
aProfileSvc->GetStartOffline(&offline);
|
||||
if (offline) {
|
||||
PR_SetEnv("XRE_START_OFFLINE=1");
|
||||
SaveToEnv("XRE_START_OFFLINE=1");
|
||||
}
|
||||
|
||||
return LaunchChild(aNative);
|
||||
|
@ -1998,7 +2008,7 @@ ImportProfiles(nsIToolkitProfileService* aPService,
|
|||
{
|
||||
nsresult rv;
|
||||
|
||||
PR_SetEnv("XRE_IMPORT_PROFILES=1");
|
||||
SaveToEnv("XRE_IMPORT_PROFILES=1");
|
||||
|
||||
// try to import old-style profiles
|
||||
{ // scope XPCOM
|
||||
|
@ -2959,7 +2969,7 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
|
|||
}
|
||||
#endif
|
||||
|
||||
PR_SetEnv("MOZ_LAUNCHED_CHILD=");
|
||||
SaveToEnv("MOZ_LAUNCHED_CHILD=");
|
||||
|
||||
gRestartArgc = gArgc;
|
||||
gRestartArgv = (char**) malloc(sizeof(char*) * (gArgc + 1 + (override ? 2 : 0)));
|
||||
|
@ -3006,7 +3016,7 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
|
|||
PR_fprintf(PR_STDERR, "Error: argument -a requires an application name\n");
|
||||
return 1;
|
||||
} else if (ar == ARG_FOUND) {
|
||||
PR_SetEnv("MOZ_NO_REMOTE=1");
|
||||
SaveToEnv("MOZ_NO_REMOTE=1");
|
||||
}
|
||||
|
||||
// Handle -help and -version command line arguments.
|
||||
|
@ -3452,14 +3462,14 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
|
|||
|
||||
// clear out any environment variables which may have been set
|
||||
// during the relaunch process now that we know we won't be relaunching.
|
||||
PR_SetEnv("XRE_PROFILE_PATH=");
|
||||
PR_SetEnv("XRE_PROFILE_LOCAL_PATH=");
|
||||
PR_SetEnv("XRE_PROFILE_NAME=");
|
||||
PR_SetEnv("XRE_START_OFFLINE=");
|
||||
PR_SetEnv("XRE_IMPORT_PROFILES=");
|
||||
PR_SetEnv("NO_EM_RESTART=");
|
||||
PR_SetEnv("XUL_APP_FILE=");
|
||||
PR_SetEnv("XRE_BINARY_PATH=");
|
||||
SaveToEnv("XRE_PROFILE_PATH=");
|
||||
SaveToEnv("XRE_PROFILE_LOCAL_PATH=");
|
||||
SaveToEnv("XRE_PROFILE_NAME=");
|
||||
SaveToEnv("XRE_START_OFFLINE=");
|
||||
SaveToEnv("XRE_IMPORT_PROFILES=");
|
||||
SaveToEnv("NO_EM_RESTART=");
|
||||
SaveToEnv("XUL_APP_FILE=");
|
||||
SaveToEnv("XRE_BINARY_PATH=");
|
||||
|
||||
if (!shuttingDown) {
|
||||
#ifdef XP_MACOSX
|
||||
|
@ -3577,10 +3587,10 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
|
|||
else {
|
||||
char* noEMRestart = PR_GetEnv("NO_EM_RESTART");
|
||||
if (noEMRestart && *noEMRestart) {
|
||||
PR_SetEnv("NO_EM_RESTART=1");
|
||||
SaveToEnv("NO_EM_RESTART=1");
|
||||
}
|
||||
else {
|
||||
PR_SetEnv("NO_EM_RESTART=0");
|
||||
SaveToEnv("NO_EM_RESTART=0");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче