diff options
Diffstat (limited to 'src/buildtool/execution_api/common')
-rw-r--r-- | src/buildtool/execution_api/common/TARGETS | 2 | ||||
-rw-r--r-- | src/buildtool/execution_api/common/content_blob_container.hpp | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS index 956fb3a3..50e556a9 100644 --- a/src/buildtool/execution_api/common/TARGETS +++ b/src/buildtool/execution_api/common/TARGETS @@ -96,6 +96,6 @@ , "name": ["content_blob_container"] , "hdrs": ["content_blob_container.hpp"] , "stage": ["src", "buildtool", "execution_api", "common"] - , "deps": [["src/utils/cpp", "transformed_range"]] + , "deps": [["src/utils/cpp", "transformed_range"], ["@", "gsl", "", "gsl"]] } } diff --git a/src/buildtool/execution_api/common/content_blob_container.hpp b/src/buildtool/execution_api/common/content_blob_container.hpp index fcd10f09..f2d7476e 100644 --- a/src/buildtool/execution_api/common/content_blob_container.hpp +++ b/src/buildtool/execution_api/common/content_blob_container.hpp @@ -16,22 +16,29 @@ #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_CONTENT_BLOB_CONTAINER_HPP #include <cstddef> +#include <memory> #include <string> #include <unordered_map> #include <utility> //std::move #include <vector> +#include "gsl/gsl" #include "src/utils/cpp/transformed_range.hpp" template <typename TDigest> struct ContentBlob final { ContentBlob(TDigest mydigest, std::string mydata, bool is_exec) noexcept : digest{std::move(mydigest)}, - data{std::move(mydata)}, + data{std::make_shared<std::string>(std::move(mydata))}, is_exec{is_exec} {} + ContentBlob(TDigest mydigest, + gsl::not_null<std::shared_ptr<std::string>> const& mydata, + bool is_exec) noexcept + : digest{std::move(mydigest)}, data(mydata), is_exec{is_exec} {} + TDigest digest{}; - std::string data{}; + std::shared_ptr<std::string> data{}; bool is_exec{}; }; |