diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-11 09:17:08 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-11 09:58:20 +0200 |
commit | 30b3239ad8bf246ac5922dd0d34aca5bc2bd0694 (patch) | |
tree | 8dd47621ec6bcf0afffbf4d6dd44ed2b5bd7051c | |
parent | e0cc8e5031453cd52a72aeb2aa69161abadeaefb (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.cpp | 7 |
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"; |