aboutsummaryrefslogtreecommitdiff
path: root/atf-c++/detail/process.cpp
diff options
context:
space:
mode:
authorEnji Cooper <ngie@FreeBSD.org>2026-08-17 09:41:49 +0000
committerEnji Cooper <ngie@FreeBSD.org>2026-08-17 09:41:49 +0000
commit0c9bf043d6892725fd76cd2026949405c9381663 (patch)
tree076723db8845ca592088620dde4d293fedb9dbfe /atf-c++/detail/process.cpp
parentcd355e3667c67b15d9850bacb416b13486e22c24 (diff)
vendor/atf: import atf-0.24-rc1vendor/atf/atf-0.24-rc1
This release candidate will likely serve as the actual upstream release tag for version 0.24, but for now it should be considered a release-candidate worthy tag as this code has not gone through a full FreeBSD test suite run or been built with `make tinderbox` yet on all supported architectures. Obtained from: https://github.com/freebsd/atf/releases/tag/atf-0.24-rc1
Diffstat (limited to 'atf-c++/detail/process.cpp')
-rw-r--r--atf-c++/detail/process.cpp22
1 files changed, 10 insertions, 12 deletions
diff --git a/atf-c++/detail/process.cpp b/atf-c++/detail/process.cpp
index 8139536d39e3..25516059c884 100644
--- a/atf-c++/detail/process.cpp
+++ b/atf-c++/detail/process.cpp
@@ -46,31 +46,29 @@ namespace impl = atf::process;
// ------------------------------------------------------------------------
template< class C >
-atf::auto_array< const char* >
+std::vector<const char*>
collection_to_argv(const C& c)
{
- atf::auto_array< const char* > argv(new const char*[c.size() + 1]);
+ std::vector<const char*> argv;
+ argv.reserve(c.size() + 1);
- std::size_t pos = 0;
- for (typename C::const_iterator iter = c.begin(); iter != c.end();
- iter++) {
- argv[pos] = (*iter).c_str();
- pos++;
+ for (const auto& item : c) {
+ argv.push_back(item.c_str());
}
- INV(pos == c.size());
- argv[pos] = NULL;
+ argv.push_back(nullptr);
return argv;
}
-template< class C >
+template<class C>
C
argv_to_collection(const char* const* argv)
{
C c;
- for (const char* const* iter = argv; *iter != NULL; iter++)
+ for (const char* const* iter = argv; *iter != nullptr; iter++) {
c.push_back(std::string(*iter));
+ }
return c;
}
@@ -123,7 +121,7 @@ const char* const*
impl::argv_array::exec_argv(void)
const
{
- return m_exec_argv.get();
+ return m_exec_argv.data();
}
impl::argv_array::size_type