aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sources/pyside6/PySide6/glue/qtstatemachine.cpp3
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp26
2 files changed, 20 insertions, 9 deletions
diff --git a/sources/pyside6/PySide6/glue/qtstatemachine.cpp b/sources/pyside6/PySide6/glue/qtstatemachine.cpp
index 098200b14..66c4acf10 100644
--- a/sources/pyside6/PySide6/glue/qtstatemachine.cpp
+++ b/sources/pyside6/PySide6/glue/qtstatemachine.cpp
@@ -41,7 +41,8 @@ if (PySide::SignalManager::registerMetaMethod(%1, signalName.constData(),
// http://bugs.openbossa.org/show_bug.cgi?id=362
// PYSIDE-2256: The label was removed
if (!PyObject_TypeCheck(%1, PySideSignalInstance_TypeF()))
- return Shiboken::returnWrongArguments(args, fullName, errInfo);
+ return Shiboken::returnWrongArguments(args, "addTransition", errInfo,
+ SbkPySide6_QtStateMachineTypeStructs[SBK_QAbstractTransition_IDX]);
PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance *>(%1);
auto sender = %CONVERTTOCPP[QObject *](PySide::Signal::getObject(signalInstance));
QSignalTransition *%0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance),%2);
diff --git a/sources/shiboken6/generator/shiboken/cppgenerator.cpp b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
index 2497e1fb4..67995d5d2 100644
--- a/sources/shiboken6/generator/shiboken/cppgenerator.cpp
+++ b/sources/shiboken6/generator/shiboken/cppgenerator.cpp
@@ -2067,9 +2067,11 @@ void CppGenerator::writeMethodWrapperPreamble(TextStream &s,
if (needsArgumentErrorHandling(overloadData))
s << "Shiboken::AutoDecRef errInfo{};\n";
- s << "static const char fullName[] = \"" << fullPythonFunctionName(rfunc, true)
- << "\";\nSBK_UNUSED(fullName)\n"
- << "Shiboken::PythonContextMarker pcm;\n";
+ bool needsFullName = !context.hasClass();
+ if (needsFullName)
+ s << "static const char fullName[] = \"" << fullPythonFunctionName(rfunc, true)
+ << "\";\nSBK_UNUSED(fullName)\n";
+ s << "Shiboken::PythonContextMarker pcm;\n";
// PYSIDE-2335: Mark blocking calls like `exec` or `run` as such.
bool isBlockingFunction = rfunc->name() == u"exec"_s || rfunc->name() == u"exec_"_s
|| rfunc->name() == u"run"_s;
@@ -2166,8 +2168,9 @@ void CppGenerator::writeConstructorWrapper(TextStream &s, const OverloadData &ov
// Handles Python Multiple Inheritance
QString pre = needsMetaObject ? u"bool usesPyMI = "_s : u""_s;
s << "\n// PyMI support\n"
- << pre << "Shiboken::callInheritedInit(self, args, kwds, fullName);\n"
- << "if (" << shibokenErrorsOccurred << ")\n"
+ << pre << "Shiboken::callInheritedInit(self, args, kwds, "
+ << (classContext.hasClass() ? typeInitStruct(classContext) : "fullName"_L1)
+ << ");\nif (" << shibokenErrorsOccurred << ")\n"
<< indent << errorReturn << outdent << "\n";
writeFunctionCalls(s, overloadData, classContext, errorReturn);
@@ -2516,15 +2519,22 @@ QString CppGenerator::returnErrorWrongArguments(const OverloadData &overloadData
{
Q_UNUSED(context);
const auto rfunc = overloadData.referenceFunction();
+ QString exprRest;
+ if (context.hasClass()) {
+ const QString &name = rfunc->isConstructor() ? "__init__"_L1 : rfunc->name();
+ exprRest = ", \""_L1 + name + "\", errInfo, "_L1 + typeInitStruct(context) + ")"_L1;
+ } else {
+ exprRest = ", fullName, errInfo)"_L1;
+ }
QString argsVar = overloadData.pythonFunctionWrapperUsesListOfArguments()
? u"args"_s : PYTHON_ARG;
switch (errorReturn) {
case ErrorReturn::Default:
- return u"Shiboken::returnWrongArguments("_s + argsVar + u", fullName, errInfo)"_s;
+ return u"Shiboken::returnWrongArguments("_s + argsVar + exprRest;
case ErrorReturn::Zero:
- return u"Shiboken::returnWrongArguments_Zero("_s + argsVar + u", fullName, errInfo)"_s;
+ return u"Shiboken::returnWrongArguments_Zero("_s + argsVar + exprRest;
case ErrorReturn::MinusOne:
- return u"Shiboken::returnWrongArguments_MinusOne("_s + argsVar + u", fullName, errInfo)"_s;
+ return u"Shiboken::returnWrongArguments_MinusOne("_s + argsVar + exprRest;
case ErrorReturn::Void:
Q_ASSERT(false);
}