From 485083ae732b1c6ecfd2882d7ef9745e97768e19 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Wed, 21 Feb 2024 13:36:05 -0500 Subject: [PATCH] cpp-common/bt2c: change some `static inline` functions to just `inline` I believe that using `inline` for functions in header is preferable to `static inline`. With `static inline`, the symbols resulting from the functions are internal to each translation unit. We may end up with multiple copies of the same function in the final executable. With `inline`, the linker de-duplicates them. This is better for code size and cache and all that. It may not be relevant for these functions, but it would be good to set the precendent for the functions we will add in the future. The caveat with that is that all copies a function must be identical (ODR), but I don't think we have a problem with that. Change-Id: I62eeacf4e8326d70cb94aec33d6684453e1b8912 Signed-off-by: Simon Marchi Reviewed-on: https://review.lttng.org/c/babeltrace/+/11843 Reviewed-by: Philippe Proulx Tested-by: jenkins --- src/cpp-common/bt2c/c-string-view.hpp | 2 +- src/cpp-common/bt2c/endian.hpp | 32 +++++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/cpp-common/bt2c/c-string-view.hpp b/src/cpp-common/bt2c/c-string-view.hpp index 939c8a16..b1a7b6e7 100644 --- a/src/cpp-common/bt2c/c-string-view.hpp +++ b/src/cpp-common/bt2c/c-string-view.hpp @@ -180,7 +180,7 @@ private: const char *_mStr = nullptr; }; -static inline const char *format_as(const CStringView& str) +inline const char *format_as(const CStringView& str) { return str ? *str : "(null)"; } diff --git a/src/cpp-common/bt2c/endian.hpp b/src/cpp-common/bt2c/endian.hpp index 4d315b26..908fc586 100644 --- a/src/cpp-common/bt2c/endian.hpp +++ b/src/cpp-common/bt2c/endian.hpp @@ -13,82 +13,82 @@ namespace bt2c { -static inline std::uint8_t littleEndianToNative(const std::uint8_t val) noexcept +inline std::uint8_t littleEndianToNative(const std::uint8_t val) noexcept { return val; } -static inline std::uint8_t bigEndianToNative(const std::uint8_t val) noexcept +inline std::uint8_t bigEndianToNative(const std::uint8_t val) noexcept { return val; } -static inline std::int8_t littleEndianToNative(const std::int8_t val) noexcept +inline std::int8_t littleEndianToNative(const std::int8_t val) noexcept { return val; } -static inline std::int8_t bigEndianToNative(const std::int8_t val) noexcept +inline std::int8_t bigEndianToNative(const std::int8_t val) noexcept { return val; } -static inline std::uint16_t littleEndianToNative(const std::uint16_t val) noexcept +inline std::uint16_t littleEndianToNative(const std::uint16_t val) noexcept { return static_cast(le16toh(val)); } -static inline std::uint16_t bigEndianToNative(const std::uint16_t val) noexcept +inline std::uint16_t bigEndianToNative(const std::uint16_t val) noexcept { return static_cast(be16toh(val)); } -static inline std::int16_t littleEndianToNative(const std::int16_t val) noexcept +inline std::int16_t littleEndianToNative(const std::int16_t val) noexcept { return static_cast(littleEndianToNative(static_cast(val))); } -static inline std::int16_t bigEndianToNative(const std::int16_t val) noexcept +inline std::int16_t bigEndianToNative(const std::int16_t val) noexcept { return static_cast(bigEndianToNative(static_cast(val))); } -static inline std::uint32_t littleEndianToNative(const std::uint32_t val) noexcept +inline std::uint32_t littleEndianToNative(const std::uint32_t val) noexcept { return static_cast(le32toh(val)); } -static inline std::uint32_t bigEndianToNative(const std::uint32_t val) noexcept +inline std::uint32_t bigEndianToNative(const std::uint32_t val) noexcept { return static_cast(be32toh(val)); } -static inline std::int32_t littleEndianToNative(const std::int32_t val) noexcept +inline std::int32_t littleEndianToNative(const std::int32_t val) noexcept { return static_cast(littleEndianToNative(static_cast(val))); } -static inline std::int32_t bigEndianToNative(const std::int32_t val) noexcept +inline std::int32_t bigEndianToNative(const std::int32_t val) noexcept { return static_cast(bigEndianToNative(static_cast(val))); } -static inline std::uint64_t littleEndianToNative(const std::uint64_t val) noexcept +inline std::uint64_t littleEndianToNative(const std::uint64_t val) noexcept { return static_cast(le64toh(val)); } -static inline std::uint64_t bigEndianToNative(const std::uint64_t val) noexcept +inline std::uint64_t bigEndianToNative(const std::uint64_t val) noexcept { return static_cast(be64toh(val)); } -static inline std::int64_t littleEndianToNative(const std::int64_t val) noexcept +inline std::int64_t littleEndianToNative(const std::int64_t val) noexcept { return static_cast(littleEndianToNative(static_cast(val))); } -static inline std::int64_t bigEndianToNative(const std::int64_t val) noexcept +inline std::int64_t bigEndianToNative(const std::int64_t val) noexcept { return static_cast(bigEndianToNative(static_cast(val))); } -- 2.34.1