//=== independent code.
//===----------------------------------------------------------------------===//
-static bool Execute(void **Data, const Path &path, const char **args,
- const char **env, const sys::Path **redirects,
+static bool Execute(void **Data, StringRef Program, const char **args,
+ const char **env, const StringRef **Redirects,
unsigned memoryLimit, std::string *ErrMsg);
-static int Wait(void *&Data, const Path &path, unsigned secondsToWait,
+static int Wait(void *&Data, StringRef Program, unsigned secondsToWait,
std::string *ErrMsg);
-int sys::ExecuteAndWait(const Path &path, const char **args, const char **envp,
- const Path **redirects, unsigned secondsToWait,
+int sys::ExecuteAndWait(StringRef Program, const char **args, const char **envp,
+ const StringRef **redirects, unsigned secondsToWait,
unsigned memoryLimit, std::string *ErrMsg,
bool *ExecutionFailed) {
void *Data = 0;
- if (Execute(&Data, path, args, envp, redirects, memoryLimit, ErrMsg)) {
+ if (Execute(&Data, Program, args, envp, redirects, memoryLimit, ErrMsg)) {
if (ExecutionFailed) *ExecutionFailed = false;
- return Wait(Data, path, secondsToWait, ErrMsg);
+ return Wait(Data, Program, secondsToWait, ErrMsg);
}
if (ExecutionFailed) *ExecutionFailed = true;
return -1;
}
-void sys::ExecuteNoWait(const Path &path, const char **args, const char **envp,
- const Path **redirects, unsigned memoryLimit,
+void sys::ExecuteNoWait(StringRef Program, const char **args, const char **envp,
+ const StringRef **redirects, unsigned memoryLimit,
std::string *ErrMsg) {
- Execute(/*Data*/ 0, path, args, envp, redirects, memoryLimit, ErrMsg);
+ Execute(/*Data*/ 0, Program, args, envp, redirects, memoryLimit, ErrMsg);
}
// Include the platform-specific parts of this class.