Qt 6.8.3 with BlackBerry 10 (QNX 8 / ARMv7) patches
 
 
 
 
 
 
Go to file
Marc Mutz da0f72ebb8 QEvent: start to de-inline copy ctor and clone() of all subclasses
There's no advantage to them being inline: Absent de-virtualisation,
clone() is only supposed to be called through the vtable, and the copy
ctor is only supposed to be used in the implementation of clone().

And when the compiler de-virtualises, we don't want the code
duplication associated with inlining.

Enforce this by introducing new macros to hide the boilerplate.

This fixes missing out-of-line dtors in:
- QSinglePointEvent
- QApplicationStateChangeEvent
- QFutureCallOutEvent

Wrong covariant return in:
- QFutureCallOutEvent

And missing clone() reimplementations in:
- QCloseEvent
- QIconDragEvent
- QShowEvent
- QHideEvent
- QDragEnterEvent
- QDragLeaveEvent

While these don't carry extra data or members, a dynamic_cast of the
result of clone() as well as using the expected covariant return value
would fail:

   QShowEvent *e = ~~~;
   QShowEvent *e2 = e->clone(); // ERROR: converting QEvent* to QShowEvent*

Check that reimplementing clone() is binary compatible (covariant
returns may change the numerical pointer value returned, cf.
https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B).

The copy-assignment operator stays inline for the time being, as the
goal is to = delete it in the future.

This patch covers, roughly, QtCore and QtGui.

[ChangeLog][QtGui][QEvent subclasses] Fixed missing clone()
reimplementations on QCloseEvent, QIconDragEvent, QShowEvent,
QHideEvent, QDragEnterEvent, and QDragLeaveEvent.

Task-number: QTBUG-45582
Task-number: QTBUG-97601
Change-Id: Ib8a0519dbe85a7a8da61050d48be338004dfa69a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-04-14 19:07:16 +02:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Provide a qtpaths wrapper script when cross-building Qt 2021-11-08 13:41:03 +01:00
cmake wasm: remove SAFE_HEAP=1 2022-04-13 00:26:09 +00:00
coin CI: add Windows host support for QNX 2022-04-05 17:03:40 +03:00
config.tests CMake: Make sure the strip_for_binary project works with Makefiles 2022-04-04 15:41:20 +02:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Add a marker for post-C++17 APIs in exported classes 2022-04-11 23:26:00 +02:00
examples Chip example: fix an accidental bool->int conversion when using PMF connections 2022-04-13 11:36:34 +08:00
lib
libexec CMake: Pass -v to ninja when using ctest --build-and-test 2022-04-04 15:41:20 +02:00
mkspecs qmake: Add support for C++23 2022-04-05 14:27:50 +02:00
qmake Remove unused parameter in NmakeMakefileGenerator::suppressBuiltinRules() 2022-04-05 11:06:23 +02:00
src QEvent: start to de-inline copy ctor and clone() of all subclasses 2022-04-14 19:07:16 +02:00
tests QEvent: start to de-inline copy ctor and clone() of all subclasses 2022-04-14 19:07:16 +02:00
util Remove the qmake2cmake wrapper scripts and document where they are 2022-04-12 10:34:40 +02:00
.cmake.conf cmake: only use qtbase configuration in qtbase 2022-03-18 12:33:10 +01:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Assume qhelpgenerator in libexec instead of bin 2021-11-08 19:27:32 +01:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag
CMakeLists.txt Use REALPATH based check for symbolic links on Windows 2022-01-07 14:31:38 +01:00
LICENSE.FDL Remove trailing whitespace in LICENSE.FDL 2021-11-26 18:28:49 +01:00
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT
LICENSE.LGPL3
LICENSE.QT-LICENSE-AGREEMENT Update LA 4.4.1 2022-03-25 20:07:30 +00:00
conanfile.py Conan: Resolve the 'qt_host_path' before assigning it to 'QT_HOST_PATH' env 2022-04-06 17:46:59 +03:00
config_help.txt Build system: Allow user to enable Intel CET 2022-04-06 13:06:24 +08:00
configure Remove unsupported, host-related options from configure shell script 2021-08-05 02:44:27 +02:00
configure.bat configure.bat: Fix call without arguments 2022-02-16 12:05:48 +01:00
configure.cmake CMake: Add rudimentary c++2b feature 2022-04-14 09:28:06 +02:00
dependencies.yaml Re-add dependencies.yaml now that qt5.git wip/qt6 builds fine 2019-09-18 13:19:31 +02:00
qt_cmdline.cmake Build system: Allow user to enable Intel CET 2022-04-06 13:06:24 +08:00
sync.profile QVariant: reduce transitive includes 2022-03-17 16:14:38 +00:00