aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/shiboken2/headergenerator.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-22 08:59:03 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-27 10:01:34 +0000
commit8b88410f9f9589235738bb26739d40af4447cc05 (patch)
tree19276bec219bf2a3c728fdced77b8fb3a45063fc /sources/shiboken2/generator/shiboken2/headergenerator.cpp
parent49bd2b28d4a666107d4d124b9a5cc9fbe88d8fe8 (diff)
shiboken2: AbstractMetaArgument: use QSharedData[Pointer]
Similar to AbstractMetaType, AbstractMetaArgument was previously kept as a raw pointer. The data were copied numerous times by AbstractMetaArgument::copy() when adding the inherited functions to a AbstractMetaClass. Similar to what was done for AbstractMetaType in 6cad0686101b252cfdbd1a6768a2b02c39aa1d8a, change the type to be based on QSharedData[Pointer]. It can then be passed around and treated like a C++ value type, with Qt sharing the data when possible behind the scenes. * Remove inheritance from AbstractMetaVariable by moving the fields over. * Remove the unused field m_originalName. Change-Id: Ic9e476ca71e163de131fbecc267d0a4e336cb0b9 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/headergenerator.cpp')
-rw-r--r--sources/shiboken2/generator/shiboken2/headergenerator.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/sources/shiboken2/generator/shiboken2/headergenerator.cpp b/sources/shiboken2/generator/shiboken2/headergenerator.cpp
index 89f02f0b2..d607ed643 100644
--- a/sources/shiboken2/generator/shiboken2/headergenerator.cpp
+++ b/sources/shiboken2/generator/shiboken2/headergenerator.cpp
@@ -245,15 +245,15 @@ void HeaderGenerator::writeFunction(QTextStream &s, const AbstractMetaFunction *
s << func->originalName() << '(';
QStringList args;
const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument *arg : arguments) {
- QString argName = arg->name();
+ for (const AbstractMetaArgument &arg : arguments) {
+ QString argName = arg.name();
const TypeEntry *enumTypeEntry = nullptr;
- if (arg->type().isFlags())
- enumTypeEntry = static_cast<const FlagsTypeEntry *>(arg->type().typeEntry())->originator();
- else if (arg->type().isEnum())
- enumTypeEntry = arg->type().typeEntry();
+ if (arg.type().isFlags())
+ enumTypeEntry = static_cast<const FlagsTypeEntry *>(arg.type().typeEntry())->originator();
+ else if (arg.type().isEnum())
+ enumTypeEntry = arg.type().typeEntry();
if (enumTypeEntry)
- argName = QString::fromLatin1("%1(%2)").arg(arg->type().cppSignature(), argName);
+ argName = QString::fromLatin1("%1(%2)").arg(arg.type().cppSignature(), argName);
args << argName;
}
s << args.join(QLatin1String(", ")) << ')';
@@ -644,15 +644,15 @@ void HeaderGenerator::writeInheritedOverloads(QTextStream &s)
s << func->ownerClass()->qualifiedCppName() << "::" << func->originalName() << '(';
QStringList args;
const AbstractMetaArgumentList &arguments = func->arguments();
- for (const AbstractMetaArgument *arg : arguments) {
- QString argName = arg->name();
+ for (const AbstractMetaArgument &arg : arguments) {
+ QString argName = arg.name();
const TypeEntry *enumTypeEntry = nullptr;
- if (arg->type().isFlags())
- enumTypeEntry = static_cast<const FlagsTypeEntry *>(arg->type().typeEntry())->originator();
- else if (arg->type().isEnum())
- enumTypeEntry = arg->type().typeEntry();
+ if (arg.type().isFlags())
+ enumTypeEntry = static_cast<const FlagsTypeEntry *>(arg.type().typeEntry())->originator();
+ else if (arg.type().isEnum())
+ enumTypeEntry = arg.type().typeEntry();
if (enumTypeEntry)
- argName = arg->type().cppSignature() + QLatin1Char('(') + argName + QLatin1Char(')');
+ argName = arg.type().cppSignature() + QLatin1Char('(') + argName + QLatin1Char(')');
args << argName;
}
s << args.join(QLatin1String(", ")) << ')';