QmlDesigner: Compile fix against C++20

Move the initialization of the traceToken into c'tors.
Otherwise, the following error occurs:
internal compiler error: in assign_temp, at function.c:986

Change-Id: I20abfbf70e01fc6268ae6d4245272ef3a89daed5
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Jarek Kobus
2024-02-06 14:01:07 +01:00
parent 947eaccea8
commit cf50a2d230
3 changed files with 15 additions and 18 deletions

View File

@@ -53,6 +53,7 @@ public:
, minorVersion(minorVersion)
, isValid(true)
, internalId(internalId)
, traceToken(ModelTracing::category().beginObject("InternalNode"_t))
{}
InternalNodeAbstractProperty::Pointer parentProperty() const { return m_parentProperty.lock(); }
@@ -223,8 +224,7 @@ public:
ModuleId moduleId;
ImportedTypeNameId importedTypeNameId;
TypeId typeId;
NO_UNIQUE_ADDRESS ModelTracing::ObjectTraceToken traceToken = ModelTracing::category().beginObject(
"InternalNode"_t);
NO_UNIQUE_ADDRESS ModelTracing::ObjectTraceToken traceToken;
private:
AuxiliaryDatas m_auxiliaryDatas;

View File

@@ -2,19 +2,19 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "internalproperty.h"
#include "internalbindingproperty.h"
#include "internalvariantproperty.h"
#include "internalnodelistproperty.h"
#include "internalnodeproperty.h"
#include "internalsignalhandlerproperty.h"
#include "internalnode_p.h"
namespace QmlDesigner {
namespace QmlDesigner::Internal {
namespace Internal {
static auto traceTokenInitArg(const QByteArray &name)
{
return ModelTracing::category().beginObject("InternalProperty"_t, keyValue("name", name));
}
// Creates invalid InternalProperty
InternalProperty::InternalProperty() = default;
InternalProperty::InternalProperty()
: traceToken(traceTokenInitArg(m_name))
{}
InternalProperty::~InternalProperty() = default;
@@ -23,9 +23,9 @@ InternalProperty::InternalProperty(const PropertyName &name,
PropertyType propertyType)
: m_name(name)
, m_propertyOwner(propertyOwner)
, m_propertyType{propertyType}
{
}
, m_propertyType(propertyType)
, traceToken(traceTokenInitArg(m_name))
{}
bool InternalProperty::isValid() const
{
@@ -52,7 +52,5 @@ void InternalProperty::resetDynamicTypeName()
m_dynamicType.clear();
}
} //namespace Internal
} //namespace QmlDesigner
} //namespace QmlDesigner::Internal

View File

@@ -193,8 +193,7 @@ private:
TypeName m_dynamicType;
std::weak_ptr<InternalNode> m_propertyOwner;
PropertyType m_propertyType = PropertyType::None;
NO_UNIQUE_ADDRESS ModelTracing::ObjectTraceToken traceToken = ModelTracing::category().beginObject(
"InternalProperty"_t, keyValue("name", m_name));
NO_UNIQUE_ADDRESS ModelTracing::ObjectTraceToken traceToken;
};
} // namespace Internal