diff options
-rw-r--r-- | PySide/QtCore/glue/qobject_connect.cpp | 5 | ||||
-rw-r--r-- | libpyside/signalmanager.cpp | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/PySide/QtCore/glue/qobject_connect.cpp b/PySide/QtCore/glue/qobject_connect.cpp index e9de41144..535dd10da 100644 --- a/PySide/QtCore/glue/qobject_connect.cpp +++ b/PySide/QtCore/glue/qobject_connect.cpp @@ -25,6 +25,9 @@ static bool getReceiver(PyObject *callback, QObject **receiver, PyObject **self) static bool qobjectConnect(QObject* source, const char* signal, QObject* receiver, const char* slot, Qt::ConnectionType type) { + if (!signal || !slot) + return false; + if (!PySide::checkSignal(signal)) return false; signal++; @@ -39,7 +42,7 @@ static bool qobjectConnect(QObject* source, const char* signal, QObject* receive static bool qobjectConnectCallback(QObject* source, const char* signal, PyObject* callback, Qt::ConnectionType type) { - if (!PySide::checkSignal(signal)) + if (!signal || !PySide::checkSignal(signal)) return false; signal++; diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp index d44743cc7..1115d24dd 100644 --- a/libpyside/signalmanager.cpp +++ b/libpyside/signalmanager.cpp @@ -82,11 +82,14 @@ using namespace PySide; bool PySide::isSignal(const char* signal) { - return signal[0] == PYSIDE_SIGNAL; + return (signal && signal[0] == PYSIDE_SIGNAL); } bool PySide::checkSignal(const char* signal) { + if (!signal) + return false; + if (signal[0] != PYSIDE_SIGNAL) { PyErr_SetString(PyExc_TypeError, "Use the function PySide.QtCore.SIGNAL on signals"); return false; |