diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-06-13 14:55:19 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-06-13 15:03:31 +0200 |
commit | d21b58ef69559f4a0412f5129175b31e4450d55b (patch) | |
tree | 2ff44a88294f4d821105ef2f02ae71d9db526f9c /sources/shiboken2/generator/shiboken2 | |
parent | 4a1d5f1d6cc6325c8e26512f408966821b41c480 (diff) |
shiboken: Fix handling shared pointers passed by const-ref, take 2
With fd126b28e1d9b02ea16c813bc392461bdb05bd1d, broken wrapper code
would still be generated for "const_QSharedPointer_QSize___&"
depending on whether the const-ref or plain value type was encountered
first when parsing.
Fix the problem by stripping the qualifiers from the metatype added to
GeneratorPrivate::m_instantiatedSmartPointers partially reverting
fd126b28e1d9b02ea16c813bc392461bdb05bd1d.
Change-Id: Ie6691e045b7d65baa3a0bc72dd8637f09eeaf111
Fixes: PYSIDE-1016
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/shiboken2/generator/shiboken2')
-rw-r--r-- | sources/shiboken2/generator/shiboken2/headergenerator.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sources/shiboken2/generator/shiboken2/headergenerator.cpp b/sources/shiboken2/generator/shiboken2/headergenerator.cpp index 17ebbcde9..a55539d7c 100644 --- a/sources/shiboken2/generator/shiboken2/headergenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/headergenerator.cpp @@ -593,10 +593,8 @@ void HeaderGenerator::writeSbkTypeFunction(QTextStream& s, const AbstractMetaCla void HeaderGenerator::writeSbkTypeFunction(QTextStream &s, const AbstractMetaType *metaType) { - QString signature = metaType->cppSignature(); - TypeInfo::stripQualifiers(&signature); // for const refs to smart pointers - s << "template<> inline PyTypeObject *SbkType< ::" << signature << " >() " - << "{ return reinterpret_cast<PyTypeObject *>(" << cpythonTypeNameExt(metaType) << "); }\n"; + s << "template<> inline PyTypeObject* SbkType< ::" << metaType->cppSignature() << " >() " + << "{ return reinterpret_cast<PyTypeObject*>(" << cpythonTypeNameExt(metaType) << "); }\n"; } void HeaderGenerator::writeInheritedOverloads(QTextStream& s) |