| Index: runtime/bin/process_macos.cc
|
| diff --git a/runtime/bin/process_macos.cc b/runtime/bin/process_macos.cc
|
| index b23ab169c394993e3df69baaa88df1f44857ad7b..11aac9f07d8b8c294e92dfa6be56cbff1cb57786 100644
|
| --- a/runtime/bin/process_macos.cc
|
| +++ b/runtime/bin/process_macos.cc
|
| @@ -16,6 +16,7 @@
|
| #include "bin/fdutils.h"
|
| #include "bin/thread.h"
|
|
|
| +extern char **environ;
|
|
|
| // ProcessInfo is used to map a process id to the file descriptor for
|
| // the pipe used to communicate the exit code of the process to Dart.
|
| @@ -460,15 +461,13 @@ int Process::Start(const char* path,
|
| ReportChildError(exec_control[1]);
|
| }
|
|
|
| - if (environment != NULL) {
|
| - TEMP_FAILURE_RETRY(
|
| - execve(path,
|
| - const_cast<char* const*>(program_arguments),
|
| - program_environment));
|
| - } else {
|
| - TEMP_FAILURE_RETRY(
|
| - execvp(path, const_cast<char* const*>(program_arguments)));
|
| + if (program_environment != NULL) {
|
| + environ = program_environment;
|
| }
|
| +
|
| + TEMP_FAILURE_RETRY(
|
| + execvp(path, const_cast<char* const*>(program_arguments)));
|
| +
|
| ReportChildError(exec_control[1]);
|
| }
|
|
|
|
|