Qt Base (Core, Gui, Widgets, Network, ...)
Go to file
Thiago Macieira 772b62c91e QChar: micro-optimization: force inlining of qGetProp()
Clang was already doing it, but GCC (at least in LTO mode) wasn't and
was repeatedly calling qGetProp(). This has the benefit that, in most
cases, the input character whose property we seek is UTF-16, so dead
code-elimination removes the extra branch - this can happen when QString
functions go through the QChar front-end, like QChar::isSpace() or
isSymbol(), which route through the char32_t overload.

This forced inling allows us to remove the UCS2 overloads of qGetProp()
and properties(), because the same const-propagation will apply to all
but one of the places where UTF-16 code units were being compared. The
16-bit qGetProp() was only used in qstring.cpp's convertCase_helper(),
whose 16-bit overload was only used in foldCase(). The one exception to
this is qtextengine.cpp's QBidiAlgorithm::resolveN0():

    const QUnicodeTables::Properties *p = QUnicodeTables::properties(char16_t{text[pos].unicode()});

This will now call the full UTF-32 overload.

Pick-to: 6.10
Change-Id: Ifa4f2d77475877f26be2fffd9a987ff994dc8ef1
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2025-09-07 01:17:29 -07:00
.github/workflows
LICENSES Merge Wayland client from qtwayland repository into qtbase 2025-05-13 01:50:43 +02:00
bin
cmake CMake: Workaround Android CMP0155 issue 2025-09-04 15:24:03 +02:00
coin Coin: Add update repo instructions 2025-09-03 23:23:58 +00:00
config.tests
dist Remove year from Qt Copyright in REUSE.toml 2025-07-09 15:16:21 +02:00
doc Doc: Add squish testing info to example template 2025-08-29 14:58:27 +02:00
examples Remove unused algorithm header from http example 2025-08-28 19:28:16 +02:00
lib
libexec qt-android-runner.py: support launching any activity name 2025-08-22 22:11:29 +03:00
mkspecs qmake: Make ccache feature available on windows hosts 2025-08-15 15:19:50 +02:00
qmake Fail builds on Apple platforms with invalid Info.plist 2025-07-04 15:02:22 +02:00
src QChar: micro-optimization: force inlining of qGetProp() 2025-09-07 01:17:29 -07:00
tests QMenu: Use BacktabFocusReason when approaching QWidgetAction from below 2025-09-06 08:41:44 +02:00
util QChar: micro-optimization: force inlining of qGetProp() 2025-09-07 01:17:29 -07:00
.cmake.conf Bump minimum requirement for visionOS to version 2 2025-06-20 15:25:11 +02:00
.gitattributes
.gitignore Fix .gitignore to ignore any build dir under the repo or its subdirs 2025-07-22 19:12:39 +00:00
.gitreview Add .gitreview file 2025-03-24 23:19:04 +01:00
.tag
CMakeLists.txt CMake: Don't unconditionally enable the ASM language 2025-05-02 18:13:14 +02:00
REUSE.toml CMake: support reduced relocations for namespaced Qt 2025-08-14 05:52:37 +08:00
config_help.txt Make doc-snippets a "build part", ie -nomake/make doc-snippets 2025-07-30 16:01:51 +02:00
configure
configure.bat
configure.cmake Android: NDK28 and later 16KB page size support for user projects 2025-08-22 14:45:44 +03:00
dependencies.yaml
licenseRule.json CMake: support reduced relocations for namespaced Qt 2025-08-14 05:52:37 +08:00
qt_cmdline.cmake Make doc-snippets a "build part", ie -nomake/make doc-snippets 2025-07-30 16:01:51 +02:00