summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* QFlatMap: add full is_transparent support [1/3]: split functionsMarc Mutz2022-01-291-2/+14
| | | | | | | | | | | | | | | | | | Extract Methods do_foo(iterator) from their respective foo(Key) methods. This is done in order to separate the common code from the code that will differ in the is_transparent overloads. Leave the function bodies where they previously appeared, for easier reviewing. Pick-to: 6.3 Change-Id: I49f41f9121a047df696f39daeaa0a9da6a16dddb Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* QFlatMap: implement mutable op[] via try_emplace()Marc Mutz2022-01-291-12/+2
| | | | | | | | | De-duplicates code. Pick-to: 6.3 Change-Id: Id7841a0717cd66bd56d489e6d2630e9eeb284316 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* rhi: Fix tessellation support for OpenGLBen Fletcher2022-01-282-7/+11
| | | | | | | | | Added shader stage mapping for tessellation stages. Manual test rhi/tessellation now works for OpenGL. Change-Id: I7906b21e9d6e20883f17729f077dba57aa29f4fd Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QCalendar: replace ostream-style qWarning with printf-style oneMarc Mutz2022-01-281-3/+2
| | | | | | | | Saves the <qdebug.h> include and expands to a lot less code. Pick-to: 6.3 6.2 Change-Id: Ic1a0aa707e7c0d4bd54da45a7fcafbf898681b2d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QFlatMap: use erase() in remove()Marc Mutz2022-01-281-2/+1
| | | | | | | | | | De-duplicates code. Pick-to: 6.3 6.2 Change-Id: I95d3d6f57c2f3716b8f3f549d1cc2a02cde9e996 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* QFlatMap: replace manual const_cast<>s with std::as_constMarc Mutz2022-01-281-9/+7
| | | | | | | | | | | | | | Shorter, because it doesn't need to name the type. As a drive-by, replace all remaining uses of the private full_map_t alias with 'QFlatMap', the class name, which, also in templates, refers to the class, not the class template. Pick-to: 6.3 6.2 Change-Id: Ie3bada43d9d28a84543e8baa8a36c522dff80b9e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* QVersionNumber: remove "pure" declaration from fromString()Thiago Macieira2022-01-281-4/+4
| | | | | | | | | | | | | | GCC doesn't like that we modify the contents of passed by pointer in the pure function. Reading the description of this attribute in the GCC manual was ambiguous then, but I can see the GCC maintainers' interpretation. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104243 Fixes: QTBUG-62185 Pick-to: 5.15 6.2 6.3 Change-Id: I6fcda969a9e9427198bffffd16cdf815d059d252 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QCalendar: eradicate Java-style iteratorMarc Mutz2022-01-281-4/+9
| | | | | | | | | | | | | We had QT_NO_JAVA_STYLE_ITERATORS in .qmake.conf, but it was lost in the transition from QMake to CMake, and - plop - they start trickling in again. Pick-to: 6.3 6.2 Change-Id: Ib92937e5fe510aba2aad92809f7a6d5fbae6f3a0 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* QLocale: replace a QList with QVLA for duplicate trackingMarc Mutz2022-01-281-1/+2
| | | | | | | | | | | An alternative would have been QDuplicateTracker, but the maximum number of entries in the tracker is statically limited to six, so we don't need a fancy hash table, linear scan is good enough. Pick-to: 6.3 Change-Id: I8ca97d239723b51892cb13a43b1d1a6412faa561 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Let QXcbGlxWindow::createVisual fallback to QXcbWindow::createVisualIlya Fedin2022-01-281-3/+6
| | | | | | | | | | | | | | When flatpak refused to install org.freedesktop.Platform.GL.default for me, I got into a situation without GL drivers and Qt applications stopped getting transparency windows. They fallback to use root_visual and it doesn't provide sufaces with alpha, I tried to add fallback to QXcbWindow::createVisual just like QXcbEglWindow::createVisual does and voila, they got transparency. Pick-to: 6.3 6.2 5.15 Change-Id: I9f401643b3ef231048c6e9e250121c96514101f5 Reviewed-by: Liang Qi <liang.qi@qt.io>
* QUrl: use qsizetype & size_t in place of int & uintThiago Macieira2022-01-282-73/+74
| | | | | | | | | | | Allows for URLs with more than 2 billion characters. I'm sure someone needs this... Change-Id: I0e5f6bec596a4a78bd3bfffd16c9991e4e6cacbf Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
* Android A11Y: fix content update notification when object is hiddenIvan Solovev2022-01-281-1/+4
| | | | | | | | | | | When the object is hidden, we should not use its viewId to notify content changed. Instead, we need to use its parent id. Task-number: QTBUG-95764 Pick-to: 6.3 6.2 5.15 Change-Id: I608658e21c401d76459a09e4b274c60b849ace86 Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: explicitly remove accessibility focus when element is hiddenIvan Solovev2022-01-281-0/+11
| | | | | | | | | | | | | | | | | | Before this patch when an element that had an Accessibility focus was hidden (for example, a button because of Accessibility.onPressAction), the focus was still remaining on that hidden element. So the next doubletaps on the screen caused the Accessibility.onPressAction() of the hidden element to be executed again and again. To fix this, we have to explicitly send a FOCUS_CLEARED event to the Android OS, when the object is hidden. Another needed fix is to set the m_focusedVirtualViewId in notifyObjectFocus() properly. Fixes: QTBUG-93393 Pick-to: 6.3 6.2 5.15 Change-Id: I6ff8a19868b96842719924037545c4ecc91e0dad Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* [Android]: Handle the screen name, modes and refreshRate properlyBogDan Vatra2022-01-289-97/+154
| | | | | | | | | Fixes: QTBUG-87136 Fixes: QTBUG-93823 Fixes: QTBUG-94959 Pick-to: 6.3 6.2 5.15 Change-Id: Id480e22611ec949b5e3ee780fc695fb502a5950c Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Exclude tst_selftests when feature process is disabledTatiana Borisova2022-01-272-8/+2
| | | | | | | | | | - It should not be built for systems without process feature. Task-number: QTBUG-99123 Pick-to: 6.2 6.3 Change-Id: I71caa59c2168435894c7d1afcc8226e44178439f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove QSharedMemory from the bootstrap libraryJoerg Bornemann2022-01-271-5/+0
| | | | | | | | | It's not used by any bootstrapped tool anymore. Pick-to: 6.2 6.3 Fixes: QTBUG-100074 Change-Id: I92cf441c200174e73b483cb4f08bab6c3e7d9c09 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QString: optimize compare_helperMarc Mutz2022-01-272-7/+4
| | | | | | | | | | | | | | | | For a long time now we have fast mixed UTF-16/UTF-8 comparisons. But no-one told this ol' relic, which still converted UTF-8 to UTF-16 for comparison. Fix by using QtPrivate::compareStrings(QSV, QU8SV), which, as the central entry point, uses the fast-path. Consequently, compare_helper can now be noexcept. Pick-to: 6.3 6.2 Change-Id: I4cc9f07d9bc48628f1fe695e80015a9a07b79d6f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFlatMap: avoid post-(in|de)crement on iteratorsMarc Mutz2022-01-271-4/+4
| | | | | | | | | | | | | | Generic code needs to avoid post-increment and -decrement, because they're less efficient than pre-increment and -decrement when implemented in class types as opposed to scalars (extra copy necessary). Use the common pattern of implementing post- using pre-increment. Pick-to: 6.3 Change-Id: Ida38df04c6c6f877453e5b3a1983457cc7f63f11 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add QTabBar test in tst_baseline_widgetsAxel Spoerl2022-01-271-0/+56
| | | | | | | Task-number: QTBUG-99772 Pick-to: 6.3 Change-Id: I501c8e5c8e3ee1a1d3ac2a36b12f51dab90c88c3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QtCore: includemocsMarc Mutz2022-01-272-0/+6
| | | | | | | | | | | | | | | This leaves moc_qnamespace.cpp in mocs_compilation.cpp. Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. Pick-to: 6.3 6.2 5.15 Change-Id: Ifdff378c74828e12ec770cb2f453dab3a880e2a5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QCalendar: move memory allocation out of critical sectionMarc Mutz2022-01-271-1/+2
| | | | | | | | | | | | By Amdahl's Law, provides for more scalability. This is just for backporting. The registry should really be able to perform lookups without allocating memory... Pick-to: 6.3 6.2 Change-Id: Ifbb832a06991b9ee9a1fd6a43db567bb572fca4f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Check if 'aab' target exists when adding <target>_make_aab as dependencyAlexey Edelev2022-01-261-1/+3
| | | | | | | | | | The global 'aab' target has its own switch QT_NO_GLOBAL_AAB_TARGET that prevents it from being created. We need to check if 'aab' target exists before adding <target>_make_aab as a dependency. Pick-to: 6.3 6.2 Change-Id: Iea569e3b6c7dfb6d0efa60dd2001fb9de161f725 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix host UiTools being picked up instead of target oneAlexandru Croitor2022-01-271-0/+1
| | | | | | | Pick-to: 6.2 6.3 Fixes: QTBUG-100233 Change-Id: Id4b30841ba9e499f462325f882218edf407e0a00 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qt6_standard_project_setup: Don't enable AUTORCCJoerg Bornemann2022-01-262-3/+3
| | | | | | | | | | | We discourage using AUTORCC, so don't make it the default for our "standard project setup". Pick-to: 6.3 Task-number: QTBUG-87643 Task-number: QTBUG-100209 Change-Id: I2715ec561266bfed5ea4ac7722ab1f1c8b982788 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Offscreen: Fix implementation of QScreen::grabWindowVolker Hilsheimer2022-01-262-15/+16
| | | | | | | | | | | | | | | | | | | | | | If id == 0, then we should grab the specified rect from the screen. To do that, find all windows intersecting with the screen geometry, and compose their backing store images into a screen-size pixmap. Otherwise, find the respective backing store and grab only that. Remove the old code respecting the desktop widget, which is no longer a thing in Qt 6. The code was also wrongly grabbing only the first containing - not intersecting - window's backing store into the screen pixmap. Enable the QScreen::grabImage test for the offscreen platform, where it now passes. Task-number: QTBUG-99962 Change-Id: I16eca7b082d65095a62c73624f86a4423e997a7a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Offscreen: Implement QPlatformBackingStore::toImageVolker Hilsheimer2022-01-261-0/+1
| | | | | | | | | | | | | Re-applies 77895514d5419b77535de093b544aee30686cd22, which was reverted after tests started to XPASS-fail in qtdeclarative. Those tests are now get consistently QSKIP'ed, so reapply the change. This makes testing of actually produced output easy in unit tests, and makes a number of previously failing QtDeclarative tests pass. Task-number: QTBUG-99962 Change-Id: I167b46b954dee18bdbf90c09c5e42a8c179a1fac Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Add QScrollBar test in tst_baseline_widgetsAxel Spoerl2022-01-261-0/+69
| | | | | | | Task-number: QTBUG-99882 Pick-to: 6.3 Change-Id: I9e9d3a674c205d26dd008b7de4e4ce31f470bf51 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* evdev: Prevent race condition in touch events processingJungi Byun2022-01-262-1/+41
| | | | | | | | | | | | | | | | | Unlike other input devices, touch devices are managed by corresponding handler threads which are not the main thread. InputEvent that is inherited by TouchEvent has a constant pointer member for device, but in touch events case, handler threads may destroy the device which is pointed by events while processing these events in main thread, and this may cause critical potential issues such as crash. In order to prevent this race condition, move device of QEvdevTouchScreenHandler into main thread and delete this device later if QGuiApplication instance exists when handler thread quits, and check event's device is valid when processing touch events. Change-Id: I02583238d97d768abcc544ee882160eda3178282 Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Windows: Change default hinting preference for high-dpiEskil Abrahamsen Blomfeldt2022-01-251-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When high-dpi is enabled, we would previously default to QFont::PreferVerticalHinting which maps to the asymmetric antialiasing strategy, where only horizontal antialiasing is enabled. The idea behind this is that it provides crisper text, especially for smaller font sizes, but for larger font sizes the aliasing artifacts outweigh the added sharpness. Inspecting native Windows applications, such as the system settings, it looks like asymmetric antialiasing is used up to a certain font size threshold. The documentation uses a font size of 16 as the suggested threshold. In accordance with the documentation, we use PreferNoHinting for font sizes above this threshold. [ChangeLog][Windows] When high-dpi scaling is active, the default text antialiasing has been set to symmetric for larger fonts (pixel size higher than 16 px). The old default can be selected manually as QFont::PreferVerticalHinting. Fixes: QTBUG-99066 Change-Id: Ibf53556f6e2cbbe1dc5d30c6c1743a499a99a90b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Check for null driver() before trying to exec()Edward Welbourne2022-01-252-2/+37
| | | | | | | | | | | | QSqlQuery::exec() took for granted that it can dereference driver(), which should be true for all sane usage; however, it should not crash if used misguidedly. Added regression test, based on bug report's reproducer, which crashes without the fix. Fixes: QTBUG-100037 Pick-to: 6.3 6.2 5.15 5.12 Change-Id: I94600bc60f89e82a1121b418144006a683921a38 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* threadedqopenglwidget example: Split out class RendererFriedemann Kleint2022-01-259-310/+441
| | | | | | | | | | | This makes the code clearer and decouples it from the GLWidget. As a drive-by, add a global shortcut to close. Pick-to: 6.3 6.2 Change-Id: I3469d29bc367acc17c5f8acf9d46219259b8315b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QByteArray: fix isUpper/isLowerGiuseppe D'Angelo2022-01-252-47/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 577d698b8e72bc0969ae7545a1a56d3a3d08bdda changed QString::isUpper / isLower behaviors to match Unicode semantics: a string is uppercase if it's identical to its own toLower/toUpper folding. These semantics come from Unicode so they're not up for debate. That commit however left QByteArray untouched. Generally speaking, we want to move away from QByteArray as "text storage" -- this has partially happened between Qt 5 and Qt 6, where QByteArray went from Latin-1 semantics to ASCII semantics. Still, QByteArray offers toUpper/toLower and isUpper/isLower and all this family of functions should be consistent in behavior. Apply the same fix that was applied to QString. [ChangeLog][Important Behavior Changes] The semantics of QByteArray::isLower() and QByteArray::isUpper() have been changed. Now lowercase (resp. uppercase) byte arrays are allowed to contain any character; a byte array is considered lowercase (resp. uppercase) if it's equal to its own toLower() (resp. toUpper()) folding. For instance, the "abc123" byte array is now considered to be lowercase. Previously, the isLower() (resp. isUpper()) functions checked whether the byte array only contained ASCII lowercase (resp. uppercase) characters, and was at least 1 character long. This had the side effect that byte array containing ASCII non-letters (e.g. numbers, symbols, etc.) were not lowercase nor uppercase. [ChangeLog][QtCore][QByteArray] QByteArray::isLower() and QByteArray::isUpper() now work correctly with empty byte arrays. The semantics of these functions have been changed. Pick-to: 6.3 6.2 Fixes: QTBUG-100107 Change-Id: Id56a42f01b2d1af5387bf0e6ccff0f824f757155 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* windows arm64: Use correct Q_PROCESSOR_ARM_64 define checkOliver Wolff2022-01-251-2/+3
| | | | | | | | | | Inclusion of qt_windows.h is needed to avoid "No Target Architecture" in winnt.h. Change-Id: Ic67ce8a306ef52c4ce3e6eaad0b7864632610737 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* INTEGRITY: Prevent deletion of virtual functionsKimmo Ollila2022-01-251-2/+2
| | | | | | | | | | | | | | | In release builds -olink also enables deletion of (unused) virtual functions. In some cases this can lead to application crashes when using loaders combined with timers. Prevent this by adding -no_uvfd option to release build flags. Task-number: QTBUG-99506 Pick-to: 6.3 6.2 5.15 Change-Id: I5c669e1e987f1fe912c9aca52ff82000125eed53 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Revert "QLatin1String: Add overloads taking QLatin1Char"Marc Mutz2022-01-252-45/+0
| | | | | | | | | | | | | | This reverts commit 1c164ec7f21a78025475c561a70b94d1e3dd6bb6, except for the test additions. Reason for revert: We need to optimize the implementation, not complicate the API. Found during the 6.3 API review. Pick-to: 6.3 Change-Id: I91c3f65ed6d1fc438deb0e028d578a07c0005362 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix build with clang-clYuhang Zhao2022-01-252-2/+2
| | | | | | | | | | | | | 1. Clang-CL can't recognize "/d2FH4" and it's causing lots of warnings when compiling. So don't apply it when building with clang-cl. 2. The definition of "FS_INFORMATION_CLASS" need to be visible to clang as well. Don't know why it was excluded originally. Pick-to: 6.3 Change-Id: I7b6e14999eea0ba1f0d73962ff03a35548f88a5a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QEventDispatcherWin32: use SetCoalescableTimer for (Very)Coarse timersThiago Macieira2022-01-241-7/+41
| | | | | | | | The tolerance can be set per timer, unlike on Linux. Fixes: QTBUG-98316 Change-Id: I5e52dc5b093c43a3b678fffd16b788a30bcb9574 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QMake: replace a Q_ASSERT() with a Q_UNREACHABLE()Marc Mutz2022-01-251-1/+2
| | | | | | | | | | | | | | In release mode, the Q_ASSERT() is a no-op, and Clang rightfully pointed out that, in that case, the bool ok variable will be used uninitialized. Fix by using Q_UNREACHABLE(), which has an effect in both debug and release builds. Pick-to: 6.3 6.2 5.15 Change-Id: I33480aabe1c5233d1caddf9404f475ca9fcb8eaf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix run time failure for UI autotests (INTEGRITY)Tatiana Borisova2022-01-253-14/+26
| | | | | | | | | | | | | | | | - Add WFD resources release: It provides possibility to re-create native window on run time. It allows to run several Qt UI applications (one by one) without device reboot. - Fix crash that found during window re-creation: ~QOpenGLCompositorBacking() calls QOpenGLCompositor::instance(). But compositor is deleted for that moment. Task-number: QTBUG-99123 Pick-to: 6.2 6.3 Change-Id: I1e6dc9a012a166d1fd6cd1c24f9d2e9a8995fc00 Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* rhi: Make sure pixelSize() to a texture rt is always up to dateLaszlo Agocs2022-01-257-24/+69
| | | | | | | | | This is an issue for QQuickWindow in practice, although it is not hit by our current tests. Pick-to: 6.3 Change-Id: Ia73704c1af6a82b2689ce7b844d3b0eb9a17ec18 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* QOperatingSystemVersion: fix #if check for macos version checkMårten Nordheim2022-01-251-1/+1
| | | | | | | | | | | | It would check the version regardless of OS, but this macro doesn't exist on non-darwin platforms. Amends 3446313c7a5cd6005089866a7b20c9f28e132a0a Pick-to: 6.3 Change-Id: I7bdc302c85626d410e77bea1eb7aac7fbf1cb679 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move private QOperatingSystemVersion::compare to removed_apiMårten Nordheim2022-01-253-6/+10
| | | | | | | | | From the API review. Pick-to: 6.3 Change-Id: I9877990f75189b99a372ea6342d07a7031228ac7 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix memory leak in QtConcurrent::run when called with a NULL QThreadPoolSona Kurazyan2022-01-242-0/+24
| | | | | | | | | | QThreadPool automatically deletes the runnable after it finishes running the task. In case QThreadPool is nullptr, we should delete the runnable manually. This amends 87b93c29be02f0a7ff9424b5e2b6431e20bd4c40. Pick-to: 6.3 6.2 5.15 Change-Id: Id7e4ed3d4d6de05990edf62e4099852983debc64 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Replace cxx17_bm_searcher config check with feature test macroMarc Mutz2022-01-243-28/+1
| | | | | | | | | | This enables the code also for boostrap. Amends b24e689cb561d81745ff47a5ce4595b809923914. Pick-to: 6.3 Change-Id: I8efc76c20690282a2428f360d6b93896966b97ee Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QByteArray benchmark: fix clang -Wmove-resultMarc Mutz2022-01-241-1/+1
| | | | | | | | | | | | | | | | | Take the argument by value instead of rvalue ref. In C++17, this is as efficient, and enables the return big; to use the QByteArray move constructor, avoiding the need for a manual std::move(), which always looks suspicious on a return statement, because more often than not, it's a pessimization that breaks NRVO. This code doesn't seem to exist in Qt 6.2, so only Pick-to: 6.3 Change-Id: I8bf678102f5df1870cfc61090d12f327478d74d1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* benchmarks: fix some (future) -Wunused-result warningsMarc Mutz2022-01-243-28/+28
| | | | | | | | | | | | | | | | | | | | Clang 10 warns about unused results of relational operators, which is where this is coming from. Fix by adding the usual prefix [[maybe_unused]] auto r = ~~~; to silence the warning. Do this elsewhere, too, since [[nodiscard]] is slowly being rolled out across all our APIs. This is not a complete sweep, though. Not picking to 5.15, because this pattern doesn't work there and I don't want to introduce a new one. Pick-to: 6.3 6.2 Change-Id: I40dd8ad07496b686979dce533e044cbb486e30f3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_bench_qlocalsocket: fix Clang 10 warnings about unneeded captureMarc Mutz2022-01-241-2/+1
| | | | | | | | | | | | | | | | The timeToTest constant doesn't need to be captured, claims Clang. Since I don't recall seeing this warning on GCC, be pragmatic and fix by letting the compiler choose what to capture: [&]. timeToTest is const, so it doesn't matter whether we capture by reference or value, the lambda cannot change it either way. This code doesn't seem to exist in 5.15, so merely Pick-to: 6.3 6.2 Change-Id: I48d42ab13ed22ac5eb512dc61235b72a19636ea3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QTransform benchmark: measure what was promisedMarc Mutz2022-01-241-1/+1
| | | | | | | | | | | | The function name suggests that the *= operator is to be benchmarked, not simple multiplication. Use the correct operator. Pick-to: 6.3 6.2 5.15 Change-Id: I6718e8aea640a153083858b39963199e7bab26e9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Optimize finding UTF-16 needles in L1 haystacksMarc Mutz2022-01-241-3/+6
| | | | | | | | | | | | We were converting the full L1 haystack to UTF-16. But, even so, we won't be able to find non-L1 UTF-16 needles in L1 haystacks! Optimize by converting the needle (not the haystack) to L1, after checking it's actually L1. Pick-to: 6.3 Change-Id: I413d7a602d44ecb2d3149dc4fa87c690c40e6aaa Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Mark ResultStoreBase as finalSona Kurazyan2022-01-243-56/+147
| | | | | | | | | | | | | The class is not intended for inheriting from it (see also e5029063057c38297f188ccfefef7b1bcd781a76), so we can mark it as final to explicitly forbid this. The tests were still using it as a base class to clean the results during destruction, so fix them accordingly. Task-number: QTBUG-99883 Pick-to: 6.3 Change-Id: I4a7ee3e2b462bd704e4b5a95ed733144805d6e5b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>