diff options
author | Savin Zlobec <savin.zlobec@gmail.com> | 2017-02-15 11:09:18 +0100 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2017-03-21 10:32:20 +0000 |
commit | 44ae7457c8e69e1db0ade7a614aa292f169f0d9d (patch) | |
tree | 28ea3c6852edf0e7c6bfdd1cac393ef70d285c92 | |
parent | ca7e25ab0cc5b0d093a9bc5afff837f6e8ab6a8e (diff) |
Fix pointer to temporary memory in PySide::getMetaDataFromQObject
This caused issues when trying to retrieve signals defined in QML,
apart from the fact that it caused undefined behavior.
Task-number: PYSIDE-484
Change-Id: I335e30bda2e293c60f9b4dc68e19b183a75a74be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r-- | libpyside/pyside.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libpyside/pyside.cpp b/libpyside/pyside.cpp index 59934286..7d05f45a 100644 --- a/libpyside/pyside.cpp +++ b/libpyside/pyside.cpp @@ -271,7 +271,8 @@ PyObject* getMetaDataFromQObject(QObject* cppSelf, PyObject* self, PyObject* nam QList<QMetaMethod> signalList; for(int i=0, i_max = metaObject->methodCount(); i < i_max; i++) { QMetaMethod method = metaObject->method(i); - const char* methSig = method.methodSignature(); + const QByteArray methSig_ = method.methodSignature(); + const char *methSig = methSig_.constData(); bool methMacth = !std::strncmp(cname, methSig, cnameLen) && methSig[cnameLen] == '('; if (methMacth) { if (method.methodType() == QMetaMethod::Signal) { |