Merge pull request #11219 from kencooke/interface-argv-bugfix

Fix crashes caused by deleting argv while in use
This commit is contained in:
Chris Collins 2017-08-21 10:26:05 -07:00 committed by GitHub
commit 52a850662c

View file

@ -216,17 +216,12 @@ int main(int argc, const char* argv[]) {
SandboxUtils::runLocalSandbox(serverContentPath, true, noUpdater); SandboxUtils::runLocalSandbox(serverContentPath, true, noUpdater);
} }
// to enable WebGL rendering // Extend argv to enable WebGL rendering
char* additionalCommandLineArg = (char*)"--ignore-gpu-blacklist"; std::vector<const char*> argvExtended(&argv[0], &argv[argc]);
int newArgc = argc + 1; argvExtended.push_back("--ignore-gpu-blacklist");
char** newArgv = new char*[newArgc]; int argcExtended = (int)argvExtended.size();
for (int i = 0; i < argc; ++i) {
newArgv[i] = (char*)argv[i];
}
newArgv[argc] = additionalCommandLineArg;
Application app(newArgc, const_cast<char**>(newArgv), startupTime, runningMarkerExisted); Application app(argcExtended, const_cast<char**>(argvExtended.data()), startupTime, runningMarkerExisted);
delete[] newArgv;
// If we failed the OpenGLVersion check, log it. // If we failed the OpenGLVersion check, log it.
if (override) { if (override) {