diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-06-07 23:20:59 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-06-07 23:20:59 +0200 |
commit | b9a857b0fdcad47db958df635a5af934a8e90d62 (patch) | |
tree | a82bee72783db8f9063d857205972e71b1df3994 /sources/shiboken2/generator | |
parent | 768541fb2e81a426daeffc2f81dcca42ecc43919 (diff) | |
parent | d9f4a921ca88bf0bd340f42a874cf7c22b6b1a36 (diff) |
Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: I920a77a3a8c79bba0fd7e5e4f990facf4081ca08
Diffstat (limited to 'sources/shiboken2/generator')
-rw-r--r-- | sources/shiboken2/generator/generator.cpp | 2 | ||||
-rw-r--r-- | sources/shiboken2/generator/shiboken2/headergenerator.cpp | 7 | ||||
-rw-r--r-- | sources/shiboken2/generator/shiboken2/shibokengenerator.cpp | 5 |
3 files changed, 11 insertions, 3 deletions
diff --git a/sources/shiboken2/generator/generator.cpp b/sources/shiboken2/generator/generator.cpp index 87758e533..fe03d3489 100644 --- a/sources/shiboken2/generator/generator.cpp +++ b/sources/shiboken2/generator/generator.cpp @@ -28,6 +28,7 @@ #include "generator.h" #include "abstractmetalang.h" +#include "parser/codemodel.h" #include "messages.h" #include "reporthandler.h" #include "fileout.h" @@ -911,6 +912,7 @@ QString getClassTargetFullName(const AbstractMetaType *metaType, bool includePac QString getFilteredCppSignatureString(QString signature) { + TypeInfo::stripQualifiers(&signature); // for const refs to smart pointers signature.replace(QLatin1String("::"), QLatin1String("_")); signature.replace(QLatin1Char('<'), QLatin1Char('_')); signature.replace(QLatin1Char('>'), QLatin1Char('_')); diff --git a/sources/shiboken2/generator/shiboken2/headergenerator.cpp b/sources/shiboken2/generator/shiboken2/headergenerator.cpp index 8881d71f4..17ebbcde9 100644 --- a/sources/shiboken2/generator/shiboken2/headergenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/headergenerator.cpp @@ -31,6 +31,7 @@ #include <typedatabase.h> #include <reporthandler.h> #include <fileout.h> +#include "parser/codemodel.h" #include <algorithm> @@ -592,8 +593,10 @@ void HeaderGenerator::writeSbkTypeFunction(QTextStream& s, const AbstractMetaCla void HeaderGenerator::writeSbkTypeFunction(QTextStream &s, const AbstractMetaType *metaType) { - s << "template<> inline PyTypeObject* SbkType< ::" << metaType->cppSignature() << " >() " - << "{ return reinterpret_cast<PyTypeObject*>(" << cpythonTypeNameExt(metaType) << "); }\n"; + 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"; } void HeaderGenerator::writeInheritedOverloads(QTextStream& s) diff --git a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp index 2b3b20c75..5d599fe95 100644 --- a/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/shibokengenerator.cpp @@ -2681,8 +2681,11 @@ QString ShibokenGenerator::getTypeIndexVariableName(const TypeEntry* type) QString ShibokenGenerator::getTypeIndexVariableName(const AbstractMetaType* type) { QString result = QLatin1String("SBK"); - if (type->typeEntry()->isContainer()) + const auto *typeEntry = type->typeEntry(); + if (typeEntry->isContainer() + || typeEntry->isSmartPointer()) { // PYSIDE-1024 result += QLatin1Char('_') + moduleName().toUpper(); + } result += processInstantiationsVariableName(type); appendIndexSuffix(&result); return result; |