From 55fadd025b835141093fce8a8633bb44b926e6e4 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 11 Mar 2025 09:21:30 +0100 Subject: [PATCH] QCssParser: shrink indexOfId by half All offsets fit into [0:255], so use uchar instead of short to store them, cutting the storage requirement of the array in half (-86 bytes). As drive-bys - make the array constexpr - fix formatting (only in touched lines) - port from explicit to implicit bounds with explicit bounds checking The latter has the advantage that we don't get value-initialized elements appended silently, cf. 5d8f815e101da3ae9cd6a666cc097853f52b21da. Pick-to: 6.8 6.5 Change-Id: I336f850a586fd2fde8f62c65223f547402fbaa75 Reviewed-by: Volker Hilsheimer (cherry picked from commit 67e9e2a7e2ee6a7687a5aa01214e70dffb6eb688) Reviewed-by: Qt Cherry-pick Bot --- src/gui/text/qcssparser.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index 1a70ca84872..e2792976e7c 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -249,11 +249,14 @@ static const QCssKnownValue values[NumKnownValues - 1] = { }; //Map id to strings as they appears in the 'values' array above -static const short indexOfId[NumKnownValues] = { 0, 46, 54, 47, 55, 56, 63, 38, 29, 83, 84, 28, 48, 7, 76, 52, +static constexpr uchar indexOfId[] = { + 0, 46, 54, 47, 55, 56, 63, 38, 29, 83, 84, 28, 48, 7, 76, 52, 32, 68, 69, 30, 58, 74, 8, 12, 43, 65, 21, 15, 19, 20, 22, 24, 57, 27, 51, 80, 40, 4, 3, 45, 75, 18, 13, 66, 16, 35, 77, 36, 78, 64, 79, 37, 67, 23, 59, 42, 6, 60, 70, 82, 10, 31, 41, 14, 39, 71, 9, 11, 5, 81, 62, 25, 26, 33, 34, 2, 44, 72, 73, 53, 0, 17, 1, 61, 50, 49 }; +static_assert(std::size(indexOfId) == size_t(NumKnownValues)); + QString Value::toString() const { if (type == KnownIdentifier) {