summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-05-19 10:38:48 +0200
committerMarc Mutz <marc.mutz@qt.io>2022-05-20 18:07:39 +0000
commit402ce8f266de19fdc4954db504debbb761159754 (patch)
treea8399ebe4c837e95ad4b4b04f6b298594538f72c
parent562f1387cbb4584fdf22753d3abb226c8a918b80 (diff)
QKeySequence: fix dynamic initialization of shared_empty
The QKeySequencePrivate default constructor wasn't constexpr, so shared_empty was not constinit'able. To make the constructor constexpr in C++17 as well as C++20, needed to replace the fill_n() on the key member with Uniform Initialization. Found by attempting to apply C++20 constinit to its definition. Pick-to: 6.3 6.2 Change-Id: I2941e96348eb969029da2f0f7231079967bba996 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-rw-r--r--src/gui/kernel/qkeysequence_p.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/gui/kernel/qkeysequence_p.h b/src/gui/kernel/qkeysequence_p.h
index 9f8c6acfbb..2f9a0b09aa 100644
--- a/src/gui/kernel/qkeysequence_p.h
+++ b/src/gui/kernel/qkeysequence_p.h
@@ -36,10 +36,7 @@ class QKeySequencePrivate
{
public:
enum { MaxKeyCount = 4 }; // also used in QKeySequenceEdit
- inline QKeySequencePrivate() : ref(1)
- {
- std::fill_n(key, uint(MaxKeyCount), 0);
- }
+ constexpr QKeySequencePrivate() : ref(1), key{} {}
inline QKeySequencePrivate(const QKeySequencePrivate &copy) : ref(1)
{
std::copy(copy.key, copy.key + MaxKeyCount,