diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:10:56 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:10:56 +0000 | 
| commit | 044eb2f6afba375a914ac9d8024f8f5142bb912e (patch) | |
| tree | 1475247dc9f9fe5be155ebd4c9069c75aadf8c20 /lib/Support/Program.cpp | |
| parent | eb70dddbd77e120e5d490bd8fbe7ff3f8fa81c6b (diff) | |
Notes
Diffstat (limited to 'lib/Support/Program.cpp')
| -rw-r--r-- | lib/Support/Program.cpp | 29 | 
1 files changed, 16 insertions, 13 deletions
| diff --git a/lib/Support/Program.cpp b/lib/Support/Program.cpp index 34e336b354d6..4212323bc0e1 100644 --- a/lib/Support/Program.cpp +++ b/lib/Support/Program.cpp @@ -23,20 +23,21 @@ using namespace sys;  //===          independent code.  //===----------------------------------------------------------------------===// -static bool Execute(ProcessInfo &PI, StringRef Program, const char **args, -                    const char **env, const StringRef **Redirects, -                    unsigned memoryLimit, std::string *ErrMsg); +static bool Execute(ProcessInfo &PI, StringRef Program, const char **Args, +                    const char **Env, ArrayRef<Optional<StringRef>> Redirects, +                    unsigned MemoryLimit, std::string *ErrMsg); -int sys::ExecuteAndWait(StringRef Program, const char **args, const char **envp, -                        const StringRef **redirects, unsigned secondsToWait, -                        unsigned memoryLimit, std::string *ErrMsg, -                        bool *ExecutionFailed) { +int sys::ExecuteAndWait(StringRef Program, const char **Args, const char **Envp, +                        ArrayRef<Optional<StringRef>> Redirects, +                        unsigned SecondsToWait, unsigned MemoryLimit, +                        std::string *ErrMsg, bool *ExecutionFailed) { +  assert(Redirects.empty() || Redirects.size() == 3);    ProcessInfo PI; -  if (Execute(PI, Program, args, envp, redirects, memoryLimit, ErrMsg)) { +  if (Execute(PI, Program, Args, Envp, Redirects, MemoryLimit, ErrMsg)) {      if (ExecutionFailed)        *ExecutionFailed = false;      ProcessInfo Result = Wait( -        PI, secondsToWait, /*WaitUntilTerminates=*/secondsToWait == 0, ErrMsg); +        PI, SecondsToWait, /*WaitUntilTerminates=*/SecondsToWait == 0, ErrMsg);      return Result.ReturnCode;    } @@ -46,14 +47,16 @@ int sys::ExecuteAndWait(StringRef Program, const char **args, const char **envp,    return -1;  } -ProcessInfo sys::ExecuteNoWait(StringRef Program, const char **args, -                               const char **envp, const StringRef **redirects, -                               unsigned memoryLimit, std::string *ErrMsg, +ProcessInfo sys::ExecuteNoWait(StringRef Program, const char **Args, +                               const char **Envp, +                               ArrayRef<Optional<StringRef>> Redirects, +                               unsigned MemoryLimit, std::string *ErrMsg,                                 bool *ExecutionFailed) { +  assert(Redirects.empty() || Redirects.size() == 3);    ProcessInfo PI;    if (ExecutionFailed)      *ExecutionFailed = false; -  if (!Execute(PI, Program, args, envp, redirects, memoryLimit, ErrMsg)) +  if (!Execute(PI, Program, Args, Envp, Redirects, MemoryLimit, ErrMsg))      if (ExecutionFailed)        *ExecutionFailed = true; | 
