diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-11-10 08:33:01 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-11-10 10:03:21 +0000 |
commit | 1ef022dc40a859390182a2bfaac311ee1843d9a2 (patch) | |
tree | ad52ddd71ea4ad3fcb81b68dff21476457aa7742 /sources/shiboken6/generator/shiboken/headergenerator.cpp | |
parent | 3464f53cb98cbd70a4e46a5c2f4c59a0c8cb16a0 (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.cpp | 11 |
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); } |