You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by mp...@apache.org on 2015/09/10 09:56:01 UTC
mesos git commit: Replaced C-style varargs for 'shell' with variadic
templates.
Repository: mesos
Updated Branches:
refs/heads/master f9c2604ea -> de7fb43a0
Replaced C-style varargs for 'shell' with variadic templates.
Review: https://reviews.apache.org/r/37968
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/de7fb43a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/de7fb43a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/de7fb43a
Branch: refs/heads/master
Commit: de7fb43a06ad57061dbd2c02b11c13be3e51fc05
Parents: f9c2604
Author: Guangya Liu <gy...@gmail.com>
Authored: Thu Sep 10 00:24:58 2015 -0700
Committer: Michael Park <mp...@apache.org>
Committed: Thu Sep 10 00:31:07 2015 -0700
----------------------------------------------------------------------
.../libprocess/3rdparty/stout/include/stout/format.hpp | 1 +
.../3rdparty/stout/include/stout/os/posix/shell.hpp | 13 ++++---------
.../3rdparty/stout/include/stout/os/windows/shell.hpp | 3 ++-
3 files changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/de7fb43a/3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp
index 1cf6dd1..642bd4c 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp
@@ -82,6 +82,7 @@ inline Try<std::string> format(const std::string& fmt, va_list args)
// NOTE: 'fmt' cannot be 'const std::string&' because passing an
// argument of reference type as the second argument of 'va_start'
// results in undefined behavior.
+// Refer to http://stackoverflow.com/a/222314 for further details.
inline Try<std::string> format(const std::string fmt, ...)
{
va_list args;
http://git-wip-us.apache.org/repos/asf/mesos/blob/de7fb43a/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp
index 68fc1fd..de45e16 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp
@@ -45,20 +45,15 @@ namespace os {
*
* @param fmt the formatting string that contains the command to execute
* in the underlying shell.
- * @param varargs optional arguments for `fmt`.
+ * @param t optional arguments for `fmt`.
*
* @return the output from running the specified command with the shell; or
* an error message if the command's exit code is non-zero.
*/
-inline Try<std::string> shell(const std::string fmt, ...)
+template <typename... T>
+Try<std::string> shell(const std::string& fmt, const T&... t)
{
- va_list args;
- va_start(args, fmt);
-
- const Try<std::string> command = strings::internal::format(fmt, args);
-
- va_end(args);
-
+ const Try<std::string> command = strings::internal::format(fmt, t...);
if (command.isError()) {
return Error(command.error());
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/de7fb43a/3rdparty/libprocess/3rdparty/stout/include/stout/os/windows/shell.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/os/windows/shell.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/os/windows/shell.hpp
index 01e59de..d402f17 100644
--- a/3rdparty/libprocess/3rdparty/stout/include/stout/os/windows/shell.hpp
+++ b/3rdparty/libprocess/3rdparty/stout/include/stout/os/windows/shell.hpp
@@ -27,7 +27,8 @@ namespace os {
// Runs a shell command formatted with varargs and return the return value
// of the command. Optionally, the output is returned via an argument.
// TODO(vinod): Pass an istream object that can provide input to the command.
-inline Try<std::string> shell(const std::string fmt, ...)
+template <typename... T>
+Try<std::string> shell(const std::string& fmt, const T&... t)
{
UNIMPLEMENTED;
}