aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-02-15 13:45:28 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-02-16 17:14:31 +0100
commita54272ecfa6ce69e201a72678da26f7f92238ac5 (patch)
tree32fe9d08d24f71ca78f221413c912a3c1e10f294
parenta1c1e0b3627732382e2c551d2494caa6b25095cf (diff)
shiboken6: Factor out helper for adding synthesized to classes
Change-Id: I6ac54926b30f88179e8d796fdfee738f419947c0 Reviewed-by: Christian Tismer <tismer@stackless.com>
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.cpp37
1 files changed, 26 insertions, 11 deletions
diff --git a/sources/shiboken6/ApiExtractor/abstractmetalang.cpp b/sources/shiboken6/ApiExtractor/abstractmetalang.cpp
index 22f9f7ae4..dc7adfb7f 100644
--- a/sources/shiboken6/ApiExtractor/abstractmetalang.cpp
+++ b/sources/shiboken6/ApiExtractor/abstractmetalang.cpp
@@ -82,6 +82,10 @@ public:
}
void addFunction(const AbstractMetaFunctionCPtr &function);
+ static AbstractMetaFunction *
+ createFunction(const QString &name, AbstractMetaFunction::FunctionType t,
+ Access access, const AbstractMetaArgumentList &arguments,
+ const AbstractMetaType &returnType, AbstractMetaClass *q);
void addConstructor(AbstractMetaFunction::FunctionType t,
Access access,
const AbstractMetaArgumentList &arguments,
@@ -824,21 +828,11 @@ void AbstractMetaClassPrivate::addConstructor(AbstractMetaFunction::FunctionType
const AbstractMetaArgumentList &arguments,
AbstractMetaClass *q)
{
- auto *f = new AbstractMetaFunction;
- f->setType(AbstractMetaType::createVoid());
- f->setOriginalName(q->name());
- f->setName(q->name());
- f->setOwnerClass(q);
- f->setFunctionType(t);
- f->setArguments(arguments);
- f->setDeclaringClass(q);
- f->setAccess(access);
+ auto *f = createFunction(q->name(), t, access, arguments, AbstractMetaType::createVoid(), q);
if (access != Access::Private)
m_hasNonPrivateConstructor = true;
f->setAttributes(AbstractMetaFunction::FinalInTargetLang
| AbstractMetaFunction::AddedMethod);
- f->setImplementingClass(q);
-
addFunction(AbstractMetaFunctionCPtr(f));
}
@@ -863,6 +857,27 @@ void AbstractMetaClass::addDefaultCopyConstructor()
Access::Public, {arg}, this);
}
+AbstractMetaFunction *
+ AbstractMetaClassPrivate::createFunction(const QString &name,
+ AbstractMetaFunction::FunctionType t,
+ Access access,
+ const AbstractMetaArgumentList &arguments,
+ const AbstractMetaType &returnType,
+ AbstractMetaClass *q)
+{
+ auto *f = new AbstractMetaFunction;
+ f->setType(returnType);
+ f->setOriginalName(name);
+ f->setName(name);
+ f->setOwnerClass(q);
+ f->setFunctionType(t);
+ f->setArguments(arguments);
+ f->setDeclaringClass(q);
+ f->setAccess(access);
+ f->setImplementingClass(q);
+ return f;
+}
+
bool AbstractMetaClass::hasNonPrivateConstructor() const
{
return d->m_hasNonPrivateConstructor;