Commit a21dfab5 authored by Marc Mutz's avatar Marc Mutz
Browse files

De-duplicate vtables III: QAccessible


By making the destructor (usually the first non-inline, non-pure,
virtual function, and therefore the trigger for most compilers to
emit the vtable and type_info structures for the class in that TU)
out-of-line, vtables and, more importantly, type_info strucures for
the class are pinned to a single TU. This prevents false negative
dynamic_cast and catch evaluation.

In this third batch, we de-inline dtors of exported public classes
from the QAccessible subsytem.

Since they are already exported, users of these classes are unaffected
by the change, but since it's public API, and the dtors may have been
de-virtualized and inlined into application code, we need to avoid
adding code to the out-of-line dtor until Qt 6.

Change-Id: I5324bd1b3b9210a3ac5cf4eee9317a34e4a3b048
Reported-by: default avatarVolker Krause <volker.krause@kdab.com>
Task-number: QTBUG-45582
Reviewed-by: default avatarThiago Macieira <thiago.macieira@intel.com>
parent f0eafa56
Showing with 127 additions and 20 deletions
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment