aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PySide/QtCore/glue/qobject_connect.cpp5
-rw-r--r--libpyside/signalmanager.cpp5
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;