QMetaType: port the BC fix for id() to new QT_REMOVED_SINCE

The allows qmetatype.cpp compilation to enjoy PCH again.

Change-Id: I47c5af33a5dbc930ee4c120b254e732c52bc2369
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This commit is contained in:
Marc Mutz 2021-12-06 13:30:10 +01:00
parent d3646d2b05
commit d5c605b148
4 changed files with 19 additions and 16 deletions

View File

@ -279,7 +279,6 @@ qt_internal_add_module(Core
set(corelib_no_pch_sources
compat/removed_api.cpp
kernel/qmetatype.cpp
)
foreach(src ${corelib_no_pch_sources})

View File

@ -43,6 +43,23 @@
QT_USE_NAMESPACE
#if QT_REMOVED_SINCE(6, 1)
#include "qmetatype.h"
// keep in sync with version in header
int QMetaType::id() const
{
if (d_ptr) {
if (int id = d_ptr->typeId.loadRelaxed())
return id;
return idHelper();
}
return 0;
}
#endif // QT_REMOVED_SINCE(6, 1)
#if QT_REMOVED_SINCE(6, 3)
#include "tools/qcryptographichash.h"

View File

@ -37,9 +37,7 @@
**
****************************************************************************/
#define QT_QMETATYPE_BC_COMPAT 1
#include "qmetatype.h"
#undef QT_QMETATYPE_BC_COMPAT
#include "qmetatype_p.h"
#include "qobjectdefs.h"
#include "qdatetime.h"
@ -491,18 +489,6 @@ bool QMetaType::isRegistered() const
Returns id type hold by this QMetatype instance.
*/
// keep in sync with version in header
// ### Qt 7::remove BC helper
int QMetaType::id() const
{
if (d_ptr) {
if (int id = d_ptr->typeId.loadRelaxed())
return id;
return idHelper();
}
return 0;
}
/*!
\internal
The slowpath of id(). Precondition: d_ptr != nullptr

View File

@ -445,13 +445,14 @@ public:
bool isValid() const;
bool isRegistered() const;
#if defined(QT_QMETATYPE_BC_COMPAT) || defined(Q_QDOC)
#if QT_REMOVED_SINCE(6, 1) || defined(Q_QDOC)
int id() const;
#else
// ### Qt 7: Remove traces of out of line version
// unused int parameter is used to avoid ODR violation
int id(int = 0) const
{
// keep in sync with the version in removed_api.cpp
if (d_ptr) {
if (int id = d_ptr->typeId.loadRelaxed())
return id;