aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/generator/shiboken/headergenerator.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-11-10 08:33:01 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-11-10 10:03:21 +0000
commit1ef022dc40a859390182a2bfaac311ee1843d9a2 (patch)
treead52ddd71ea4ad3fcb81b68dff21476457aa7742 /sources/shiboken6/generator/shiboken/headergenerator.cpp
parent3464f53cb98cbd70a4e46a5c2f4c59a0c8cb16a0 (diff)
shiboken6: Port AbstractMetaField to use QSharedDataPointer
Fold AbstractMetaVariable into AbstractMetaField and use a QSharedDataPointer for it. Change the client code to store it by value. For the find() and traverseField() functions, use a std::optional to replace the pointer. Change-Id: Ibaa301b9aaae8851fcaa077327235cc5aaad7342 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/generator/shiboken/headergenerator.cpp')
-rw-r--r--sources/shiboken6/generator/shiboken/headergenerator.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/sources/shiboken6/generator/shiboken/headergenerator.cpp b/sources/shiboken6/generator/shiboken/headergenerator.cpp
index 3d707318c..83f42f687 100644
--- a/sources/shiboken6/generator/shiboken/headergenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/headergenerator.cpp
@@ -69,11 +69,11 @@ void HeaderGenerator::writeCopyCtor(QTextStream &s, const AbstractMetaClass *met
s << INDENT << "}\n\n";
}
-void HeaderGenerator::writeProtectedFieldAccessors(QTextStream &s, const AbstractMetaField *field) const
+void HeaderGenerator::writeProtectedFieldAccessors(QTextStream &s, const AbstractMetaField &field) const
{
- const AbstractMetaType &metaType = field->type();
+ const AbstractMetaType &metaType = field.type();
QString fieldType = metaType.cppSignature();
- QString fieldName = field->enclosingClass()->qualifiedCppName() + QLatin1String("::") + field->name();
+ const QString fieldName = field.qualifiedCppName();
// Force use of pointer to return internal variable memory
bool useReference = (!metaType.isConstant() &&
@@ -160,9 +160,8 @@ void HeaderGenerator::generateClass(QTextStream &s, const GeneratorContext &clas
maxOverrides = 1;
if (avoidProtectedHack() && metaClass->hasProtectedFields()) {
- const AbstractMetaFieldList &fields = metaClass->fields();
- for (AbstractMetaField *field : fields) {
- if (!field->isProtected())
+ for (const AbstractMetaField &field : metaClass->fields()) {
+ if (!field.isProtected())
continue;
writeProtectedFieldAccessors(s, field);
}