diff options
Diffstat (limited to 'sources/pyside2/libpyside/dynamicqmetaobject.cpp')
-rw-r--r-- | sources/pyside2/libpyside/dynamicqmetaobject.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/sources/pyside2/libpyside/dynamicqmetaobject.cpp b/sources/pyside2/libpyside/dynamicqmetaobject.cpp index 417ffef5f..c5de54aa0 100644 --- a/sources/pyside2/libpyside/dynamicqmetaobject.cpp +++ b/sources/pyside2/libpyside/dynamicqmetaobject.cpp @@ -464,16 +464,9 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type) if (Signal::checkType(value)) { // Register signals. auto data = reinterpret_cast<PySideSignal *>(value); - const char *signalName = Shiboken::String::toCString(key); - data->signalName = strdup(signalName); - QByteArray sig; - sig.reserve(128); - for (int i = 0; i < data->signaturesSize; ++i) { - sig = signalName; - sig += '('; - if (data->signatures[i]) - sig += data->signatures[i]; - sig += ')'; + data->data->signalName = Shiboken::String::toCString(key); + for (const auto &s : data->data->signatures) { + const auto sig = data->data->signalName + '(' + s.signature + ')'; if (m_baseObject->indexOfSignal(sig) == -1) m_builder->addSignal(sig); } |