aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-04-12 15:24:51 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-04-15 10:23:24 +0000
commitde6d78fe3d7a41d0b6ef56363e82ffc8fb75119a (patch)
tree28668f50347c09d8d650b6d4660de114358da182 /sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
parent16a16dc4d17e5643ddb1656b382a3f8ffe31fd8f (diff)
shiboken: Fix code injection not working for operator functions
Searching for the function modifications of the operator function by signature failed due to the internally changed signature. Store the function modification list of user-added-functions directly in struct AddedFunction instead of the type entry of the containing class. In AbstractMetaFunction, replace the bool m_userAdded flag by a shared pointer to the AddedFunction and use that to retrieve the modifications (injected code snippets) for the user-added functions instead of searching for them by function signature. Task-number: PYSIDE-995 Change-Id: Ic4d0b257f141a450df26563d33beb397b6209d91 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp12
1 files changed, 1 insertions, 11 deletions
diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
index 8373889d4..6e95e79e7 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp
@@ -1596,17 +1596,7 @@ AbstractMetaFunction* AbstractMetaBuilderPrivate::traverseFunction(const AddedFu
AbstractMetaFunction* AbstractMetaBuilderPrivate::traverseFunction(const AddedFunctionPtr &addedFunc,
AbstractMetaClass *metaClass)
{
- AbstractMetaFunction *metaFunction = new AbstractMetaFunction;
- metaFunction->setConstant(addedFunc->isConstant());
- metaFunction->setName(addedFunc->name());
- metaFunction->setOriginalName(addedFunc->name());
- AbstractMetaClass::Attributes visibility =
- addedFunc->access() == AddedFunction::Public
- ? AbstractMetaAttributes::Public : AbstractMetaAttributes::Protected;
- metaFunction->setVisibility(visibility);
- metaFunction->setUserAdded(true);
- AbstractMetaAttributes::Attribute isStatic = addedFunc->isStatic() ? AbstractMetaFunction::Static : AbstractMetaFunction::None;
- metaFunction->setAttributes(metaFunction->attributes() | AbstractMetaAttributes::FinalInTargetLang | isStatic);
+ AbstractMetaFunction *metaFunction = new AbstractMetaFunction(addedFunc);
metaFunction->setType(translateType(addedFunc->returnType()));