You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2016/07/04 17:01:27 UTC

[06/15] mesos git commit: Used os::raw::Argv in command executor.

Used os::raw::Argv in command executor.

Review: https://reviews.apache.org/r/49425


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/e9e7cf00
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/e9e7cf00
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/e9e7cf00

Branch: refs/heads/master
Commit: e9e7cf00e6f5cc71efdfe1d7439484b28bc07f86
Parents: 7e63b80
Author: Jie Yu <yu...@gmail.com>
Authored: Wed Jun 29 21:48:28 2016 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Mon Jul 4 10:01:13 2016 -0700

----------------------------------------------------------------------
 src/launcher/posix/executor.cpp   | 10 +++-------
 src/launcher/windows/executor.cpp | 10 +---------
 2 files changed, 4 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/e9e7cf00/src/launcher/posix/executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/posix/executor.cpp b/src/launcher/posix/executor.cpp
index 805280e..3ced30f 100644
--- a/src/launcher/posix/executor.cpp
+++ b/src/launcher/posix/executor.cpp
@@ -21,6 +21,8 @@
 #include <stout/os.hpp>
 #include <stout/strings.hpp>
 
+#include <stout/os/raw/argv.hpp>
+
 #ifdef __linux__
 #include "linux/fs.hpp"
 #endif
@@ -81,11 +83,7 @@ pid_t launchTaskPosix(
   }
 
   // Prepare the argv before fork as it's not async signal safe.
-  char **argv = new char*[command.arguments().size() + 1];
-  for (int i = 0; i < command.arguments().size(); i++) {
-    argv[i] = (char*) command.arguments(i).c_str();
-  }
-  argv[command.arguments().size()] = nullptr;
+  os::raw::Argv argv(command.arguments());
 
   pid_t pid;
   if ((pid = fork()) == -1) {
@@ -214,8 +212,6 @@ pid_t launchTaskPosix(
     ABORT("Failed to exec: " + os::strerror(errno));
   }
 
-  delete[] argv;
-
   return pid;
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/e9e7cf00/src/launcher/windows/executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/windows/executor.cpp b/src/launcher/windows/executor.cpp
index b008052..a7b8125 100644
--- a/src/launcher/windows/executor.cpp
+++ b/src/launcher/windows/executor.cpp
@@ -69,15 +69,7 @@ PROCESS_INFORMATION launchTaskWindows(
 
     // TODO(jieyu): Consider allowing os::stringify_args to take
     // `command.arguments()` directly.
-    char **argv = new char*[command.arguments().size() + 1];
-    for (int i = 0; i < command.arguments().size(); i++) {
-      argv[i] = (char*) command.arguments(i).c_str();
-    }
-    argv[command.arguments().size()] = nullptr;
-
-    commandLine = os::stringify_args(argv);
-
-    delete[] argv;
+    commandLine = os::stringify_args(os::raw::Argv(command.arguments()));
   }
 
   cout << commandLine << endl;