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>
const char *_mStr = nullptr;
};
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)";
}
{
return str ? *str : "(null)";
}
-static inline std::uint8_t littleEndianToNative(const std::uint8_t val) noexcept
+inline std::uint8_t littleEndianToNative(const std::uint8_t val) noexcept
-static inline std::uint8_t bigEndianToNative(const std::uint8_t val) noexcept
+inline std::uint8_t bigEndianToNative(const std::uint8_t val) noexcept
-static inline std::int8_t littleEndianToNative(const std::int8_t val) noexcept
+inline std::int8_t littleEndianToNative(const std::int8_t val) noexcept
-static inline std::int8_t bigEndianToNative(const std::int8_t val) noexcept
+inline std::int8_t bigEndianToNative(const std::int8_t val) noexcept
-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));
}
{
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));
}
{
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)));
}
{
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)));
}
{
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));
}
{
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));
}
{
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)));
}
{
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)));
}
{
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));
}
{
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));
}
{
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)));
}
{
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)));
}
{
return static_cast<std::int64_t>(bigEndianToNative(static_cast<std::uint64_t>(val)));
}