cpp-common/bt2c: change some `static inline` functions to just `inline`
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 21 Feb 2024 18:36:05 +0000 (13:36 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 26 Mar 2024 18:56:36 +0000 (14:56 -0400)
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 <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/11843
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
src/cpp-common/bt2c/c-string-view.hpp
src/cpp-common/bt2c/endian.hpp

index 939c8a16455b014d1b5cca10168c75f99af2d7b8..b1a7b6e76d4037fb2976f1248a1a26d4278d822c 100644 (file)
@@ -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)";
 }
index 4d315b265eec1c99825e17506b765e42974b5a20..908fc586ed4f1eb304239d1eef4893e753bb2e7b 100644 (file)
 
 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<std::uint16_t>(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<std::uint16_t>(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<std::int16_t>(littleEndianToNative(static_cast<std::uint16_t>(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<std::int16_t>(bigEndianToNative(static_cast<std::uint16_t>(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<std::uint32_t>(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<std::uint32_t>(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<std::int32_t>(littleEndianToNative(static_cast<std::uint32_t>(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<std::int32_t>(bigEndianToNative(static_cast<std::uint32_t>(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<std::uint64_t>(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<std::uint64_t>(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<std::int64_t>(littleEndianToNative(static_cast<std::uint64_t>(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<std::int64_t>(bigEndianToNative(static_cast<std::uint64_t>(val)));
 }
This page took 0.039673 seconds and 4 git commands to generate.