aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-11 09:17:08 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-11 09:58:20 +0200
commit30b3239ad8bf246ac5922dd0d34aca5bc2bd0694 (patch)
tree8dd47621ec6bcf0afffbf4d6dd44ed2b5bd7051c
parente0cc8e5031453cd52a72aeb2aa69161abadeaefb (diff)
Fix memory corruption for QML registered types
Pass the correct size of the wrapper class to PySide::initDynamicMetaObject(). Change-Id: I424bb93f4eb50da8384140cc8b3b4b063bc49108 Fixes: PYSIDE-1255 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r--sources/shiboken2/generator/shiboken2/cppgenerator.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
index 6b29272e0..90187ff6b 100644
--- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
+++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
@@ -5135,7 +5135,12 @@ void CppGenerator::writeClassRegister(QTextStream &s,
if (usePySideExtensions() && metaClass->isQObject()) {
s << INDENT << "Shiboken::ObjectType::setSubTypeInitHook(" << pyTypeName << ", &PySide::initQObjectSubType);\n";
s << INDENT << "PySide::initDynamicMetaObject(" << pyTypeName << ", &::" << metaClass->qualifiedCppName()
- << "::staticMetaObject, sizeof(::" << metaClass->qualifiedCppName() << "));\n";
+ << "::staticMetaObject, sizeof(";
+ if (shouldGenerateCppWrapper(metaClass))
+ s << wrapperName(metaClass);
+ else
+ s << "::" << metaClass->qualifiedCppName();
+ s << "));\n";
}
s << "}\n";