diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-02-15 13:45:28 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-02-16 17:14:31 +0100 |
| commit | a54272ecfa6ce69e201a72678da26f7f92238ac5 (patch) | |
| tree | 32fe9d08d24f71ca78f221413c912a3c1e10f294 | |
| parent | a1c1e0b3627732382e2c551d2494caa6b25095cf (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.cpp | 37 |
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; |
