From edfe13aa4e848381ab2a5b206da9ae353122e476 Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Mon, 30 May 2022 13:53:46 -0400 Subject: [PATCH] Fix: field.hpp: various typos * `Common{Unsigned, Signed}IntegerField` is derived by the `Common{Unsigned,Signed}EnumerationField` class so can't be final. * `CommonSignedIntegerField::value` should be `int64_t`. * Calling single precision function instead of double. * `CommonStringField::operator=` methods can throw. Signed-off-by: Francis Deslauriers Change-Id: Ib354f0bd4edc8f625494acedac1052c7f45ec67d Reviewed-on: https://review.lttng.org/c/babeltrace/+/8185 Reviewed-by: Philippe Proulx Reviewed-on: https://review.lttng.org/c/babeltrace/+/10828 Tested-by: jenkins CI-Build: Philippe Proulx --- src/cpp-common/bt2/field.hpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/cpp-common/bt2/field.hpp b/src/cpp-common/bt2/field.hpp index 7b677718..a59ac9fd 100644 --- a/src/cpp-common/bt2/field.hpp +++ b/src/cpp-common/bt2/field.hpp @@ -402,7 +402,7 @@ struct TypeDescr : public BitArrayFieldTypeDescr } /* namespace internal */ template -class CommonUnsignedIntegerField final : public CommonField +class CommonUnsignedIntegerField : public CommonField { private: using typename CommonField::_ThisCommonField; @@ -491,7 +491,7 @@ struct TypeDescr : public UnsignedIntegerFieldTypeDes } /* namespace internal */ template -class CommonSignedIntegerField final : public CommonField +class CommonSignedIntegerField : public CommonField { private: using typename CommonField::_ThisCommonField; @@ -501,7 +501,7 @@ protected: using _ThisCommonSignedIntegerField = CommonSignedIntegerField; public: - using Value = std::uint64_t; + using Value = std::int64_t; using Class = typename std::conditional::value, ConstIntegerFieldClass, IntegerFieldClass>::type; @@ -881,13 +881,13 @@ public: { static_assert(!std::is_const::value, "`LibObjT` must NOT be `const`."); - bt_field_real_single_precision_set_value(this->libObjPtr(), val); + bt_field_real_double_precision_set_value(this->libObjPtr(), val); return *this; } Value value() const noexcept { - return bt_field_real_single_precision_get_value(this->libObjPtr()); + return bt_field_real_double_precision_get_value(this->libObjPtr()); } operator Value() const noexcept @@ -944,7 +944,7 @@ public: return *this; } - CommonStringField& operator=(const char * const val) noexcept + CommonStringField& operator=(const char * const val) { static_assert(!std::is_const::value, "`LibObjT` must NOT be `const`."); @@ -957,7 +957,7 @@ public: return *this; } - CommonStringField& operator=(const std::string& val) noexcept + CommonStringField& operator=(const std::string& val) { return *this = val.data(); } -- 2.34.1