From bd15267952abb83a0292be56efce8e7b7916e645 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Fri, 27 Sep 2024 16:42:55 -0400 Subject: [PATCH] cpp-common/bt2: add Value::copy() Wrap bt_value_copy(). Change-Id: Ied4900db16064b44d84aac1773385d8be4cfbf80 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/13297 Reviewed-by: Philippe Proulx Tested-by: jenkins --- src/cpp-common/bt2/value.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/cpp-common/bt2/value.hpp b/src/cpp-common/bt2/value.hpp index 9f7fdff5..72ec75f2 100644 --- a/src/cpp-common/bt2/value.hpp +++ b/src/cpp-common/bt2/value.hpp @@ -210,6 +210,17 @@ public: return CommonValueRawValueProxy {*this}; } + SharedValue, bt_value> copy() const + { + bt_value *copy; + + if (bt_value_copy(this->libObjPtr(), ©) == BT_VALUE_COPY_STATUS_MEMORY_ERROR) { + throw MemoryError {}; + } + + return SharedValue, bt_value>::createWithoutRef(copy); + } + std::uint64_t arrayLength() const noexcept { return this->asArray().length(); -- 2.34.1