From 5d8f815e101da3ae9cd6a666cc097853f52b21da Mon Sep 17 00:00:00 2001 From: Laszlo Papp Date: Sat, 14 May 2022 17:56:13 +0100 Subject: [PATCH] QKeySequence: Fix the one-off error in the mac glyph array size It seems that the size of the corresponding array in the code has a one-off error. This is now fixed. The end of the array passed to lower_bound is wrong because the hard-coded size is size + 1. However, the end is array + size. This is what lower_bound expects from an array. Or any other algorithm for that matter expecting the end of a container as an argument. This can cause issues with something like lower_bound because a potential "empty" fill is not sorted as lower_bound would expect the data structure. It could have been fixed by decreasing the size by one, however it is a more future-proof solution to avoid hard-coding the size and just use std::size(array) instead. Pick-to: 5.15 6.2 6.3 Change-Id: I1d25a5b1a80a3b2634b229e0718108ad5e7808a0 Reviewed-by: Shawn Rutledge --- src/gui/kernel/qkeysequence.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp index ec7420e178..98ce31f350 100644 --- a/src/gui/kernel/qkeysequence.cpp +++ b/src/gui/kernel/qkeysequence.cpp @@ -73,8 +73,7 @@ static const int kControlUnicode = 0x2303; static const int kOptionUnicode = 0x2325; static const int kCommandUnicode = 0x2318; -static const int NumEntries = 21; -static const MacSpecialKey entries[NumEntries] = { +static const MacSpecialKey entries[] = { { Qt::Key_Escape, 0x238B }, { Qt::Key_Tab, 0x21E5 }, { Qt::Key_Backtab, 0x21E4 }, @@ -96,6 +95,7 @@ static const MacSpecialKey entries[NumEntries] = { { Qt::Key_Alt, kOptionUnicode }, { Qt::Key_CapsLock, 0x21EA }, }; +static const int NumEntries = std::size(entries); static bool operator<(const MacSpecialKey &entry, int key) {