From e871146b29415ab8cffef41c04e2f1bb50c6c777 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Sat, 12 Apr 2025 11:40:43 +0200 Subject: [PATCH] Utils: Use likely attribute Change-Id: Iace372facd11c101a0f0a1b11ca585b374f42f1e Reviewed-by: Thomas Hartmann --- src/libs/utils/smallstringlayout.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/libs/utils/smallstringlayout.h b/src/libs/utils/smallstringlayout.h index 6e33e3010c4..e4c0f1f9176 100644 --- a/src/libs/utils/smallstringlayout.h +++ b/src/libs/utils/smallstringlayout.h @@ -119,7 +119,7 @@ struct alignas(16) StringDataLayout StringDataLayout(const char *string, size_type size, size_type capacity) noexcept { - if (Q_LIKELY(capacity <= shortStringCapacity())) { + if (capacity <= shortStringCapacity()) [[likely]] { control = Internal::ControlBlock(size, false, false); std::char_traits::copy(shortString, string, size); } else { @@ -181,11 +181,20 @@ struct alignas(16) StringDataLayout constexpr bool isReadOnlyReference() const noexcept { return control.isReadOnlyReference(); } - char *data() noexcept { return Q_LIKELY(isShortString()) ? shortString : reference.pointer; } + char *data() noexcept + { + if (isShortString()) [[likely]] + return shortString; + else + return reference.pointer; + } const char *data() const noexcept { - return Q_LIKELY(isShortString()) ? shortString : reference.pointer; + if (isShortString()) [[likely]] + return shortString; + else + return reference.pointer; } void setPointer(char *p) noexcept { reference.pointer = p; } @@ -266,7 +275,7 @@ struct alignas(16) StringDataLayout(size)} , capacity_{static_cast(std::max(capacity, MaximumShortStringDataAreaSize))} { - if (Q_LIKELY(capacity <= shortStringCapacity())) { + if (capacity <= shortStringCapacity()) [[likely]] { std::char_traits::copy(buffer, string, size); pointer = buffer; } else {