Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-03-14 13:29:49 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-03-14 15:50:11 +0100
commit216c7802c393995acce063da48300b06caa23eb1 (patch)
treea7cb0596c16d63475c693827d11b4db5ae32b7ca /sources/pyside6/libpyside/dynamicqmetaobject.cpp
parent3ed0a3dca33fe65d3ead8731a129fdb562d0c204 (diff)
libpyside: Refactor handling of named signal arguments
Allocate the list of names only if the "arguments" parameter is present. Delete it in signalFree(). Pick-to: 6.2 Change-Id: I56fe3c1a50a73e7a7ae924ccb844d2bd6378a00d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside/dynamicqmetaobject.cpp')
-rw-r--r--sources/pyside6/libpyside/dynamicqmetaobject.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/sources/pyside6/libpyside/dynamicqmetaobject.cpp b/sources/pyside6/libpyside/dynamicqmetaobject.cpp
index 6f1c9b40a..b23e4a426 100644
--- a/sources/pyside6/libpyside/dynamicqmetaobject.cpp
+++ b/sources/pyside6/libpyside/dynamicqmetaobject.cpp
@@ -625,21 +625,19 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
while (PyDict_Next(attrs, &pos, &key, &value)) {
if (Signal::checkType(value)) {
// Register signals.
- auto data = reinterpret_cast<PySideSignal *>(value);
- if (data->data->signalName.isEmpty())
- data->data->signalName = String::toCString(key);
- for (const auto &s : data->data->signatures) {
- const auto sig = data->data->signalName + '(' + s.signature + ')';
+ auto *data = reinterpret_cast<PySideSignal *>(value)->data;
+ if (data->signalName.isEmpty())
+ data->signalName = String::toCString(key);
+ for (const auto &s : data->signatures) {
+ const auto sig = data->signalName + '(' + s.signature + ')';
if (m_baseObject->indexOfSignal(sig) == -1) {
// Registering the parameterNames to the QMetaObject (PYSIDE-634)
// from:
// Signal(..., arguments=['...', ...]
// the arguments are now on data-data->signalArguments
- if (!data->data->signalArguments->isEmpty()) {
- m_builder->addSignal(sig).setParameterNames(*data->data->signalArguments);
- } else {
- m_builder->addSignal(sig);
- }
+ auto builder = m_builder->addSignal(sig);
+ if (data->signalArguments && !data->signalArguments->isEmpty())
+ builder.setParameterNames(*data->signalArguments);
}
}
}