summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Program.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-06-12 20:58:35 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-06-12 20:58:35 +0000
commitcb2eca0f91ae8012b96999f3b2ff3e023af4d364 (patch)
tree8c5a828e1955b5d83a071b06d73bb403c9a54e78 /llvm/lib/Support/Program.cpp
parentc2467c4e9b7997bcab43e858b4448e2c6e0d9224 (diff)
downloadbcm5719-llvm-cb2eca0f91ae8012b96999f3b2ff3e023af4d364.tar.gz
bcm5719-llvm-cb2eca0f91ae8012b96999f3b2ff3e023af4d364.zip
Remove the program class.
It was only used to implement ExecuteAndWait and ExecuteNoWait. Expose just those two functions and make Execute and Wait implementations details. llvm-svn: 183864
Diffstat (limited to 'llvm/lib/Support/Program.cpp')
-rw-r--r--llvm/lib/Support/Program.cpp38
1 files changed, 18 insertions, 20 deletions
diff --git a/llvm/lib/Support/Program.cpp b/llvm/lib/Support/Program.cpp
index 201d5c0d305..ae7e291e2a0 100644
--- a/llvm/lib/Support/Program.cpp
+++ b/llvm/lib/Support/Program.cpp
@@ -22,33 +22,31 @@ using namespace sys;
//=== independent code.
//===----------------------------------------------------------------------===//
-int
-Program::ExecuteAndWait(const Path& path,
- const char** args,
- const char** envp,
- const Path** redirects,
- unsigned secondsToWait,
- unsigned memoryLimit,
- std::string* ErrMsg,
+static bool Execute(void *&Data, const Path &path, const char **args,
+ const char **env, const sys::Path **redirects,
+ unsigned memoryLimit, std::string *ErrMsg);
+
+static int Wait(void *&Data, const Path &path, unsigned secondsToWait,
+ std::string *ErrMsg);
+
+int sys::ExecuteAndWait(const Path &path, const char **args, const char **envp,
+ const Path **redirects, unsigned secondsToWait,
+ unsigned memoryLimit, std::string *ErrMsg,
bool *ExecutionFailed) {
- Program prg;
- if (prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg)) {
+ void *Data;
+ if (Execute(Data, path, args, envp, redirects, memoryLimit, ErrMsg)) {
if (ExecutionFailed) *ExecutionFailed = false;
- return prg.Wait(path, secondsToWait, ErrMsg);
+ return Wait(Data, path, secondsToWait, ErrMsg);
}
if (ExecutionFailed) *ExecutionFailed = true;
return -1;
}
-void
-Program::ExecuteNoWait(const Path& path,
- const char** args,
- const char** envp,
- const Path** redirects,
- unsigned memoryLimit,
- std::string* ErrMsg) {
- Program prg;
- prg.Execute(path, args, envp, redirects, memoryLimit, ErrMsg);
+void sys::ExecuteNoWait(const Path &path, const char **args, const char **envp,
+ const Path **redirects, unsigned memoryLimit,
+ std::string *ErrMsg) {
+ void *Data;
+ Execute(Data, path, args, envp, redirects, memoryLimit, ErrMsg);
}
// Include the platform-specific parts of this class.
OpenPOWER on IntegriCloud