diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-01-18 14:26:00 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-01-18 15:27:46 -0300 |
commit | 2f726de3600e5386fc1bc70776c5cb29a637b5ab (patch) | |
tree | a3c47a89878e6e4e15baf8359ce97b0815fb5925 | |
parent | 55d3c6ef4e9f43215d529be73b1617510c08ffcd (diff) |
Updates SignalManager and GlobalReceiver to acquire the GIL before calling Python.
Reviewed by Hugo Parente Lima <hugo.lima@openbossa.org>
-rw-r--r-- | libpyside/globalreceiver.cpp | 2 | ||||
-rw-r--r-- | libpyside/signalmanager.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/libpyside/globalreceiver.cpp b/libpyside/globalreceiver.cpp index a52db7be2..45373f557 100644 --- a/libpyside/globalreceiver.cpp +++ b/libpyside/globalreceiver.cpp @@ -37,6 +37,7 @@ #include <QDebug> #include "signalmanager.h" #include <autodecref.h> +#include <gilstate.h> #include "typeresolver.h" @@ -168,6 +169,7 @@ int GlobalReceiver::qt_metacall(QMetaObject::Call call, int id, void** args) return -1; } + Shiboken::GilState gil; int numArgs; PyObject* retval = 0; PyObject* callback = data->callback(); diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp index eaa18455c..c4bf09217 100644 --- a/libpyside/signalmanager.cpp +++ b/libpyside/signalmanager.cpp @@ -38,6 +38,7 @@ #include <QStringList> #include <QMetaMethod> #include <autodecref.h> +#include <gilstate.h> #include <QDebug> #include <limits> #include <typeresolver.h> @@ -262,6 +263,7 @@ int PySide::SignalManager::qt_metacall(QObject* object, QMetaObject::Call call, QMetaObject::activate(object, id, args); } else { // call python slot + Shiboken::GilState gil; QList<QByteArray> paramTypes = method.parameterTypes(); PyObject* self = Shiboken::BindingManager::instance().retrieveWrapper(object); Shiboken::AutoDecRef preparedArgs(PyTuple_New(paramTypes.count())); |