// the helper needs to know more about the type.
wxList* wxPy_wxListHelper(PyObject* pyList, char* className) {
- bool doSave = wxPyRestoreThread();
+ wxPyTState* state = wxPyBeginBlockThreads();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return NULL;
}
int count = PyList_Size(pyList);
wxList* list = new wxList;
if (! list) {
PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return NULL;
}
for (int x=0; x<count; x++) {
char errmsg[1024];
sprintf(errmsg, "Type error, expected list of %s objects", className);
PyErr_SetString(PyExc_TypeError, errmsg);
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return NULL;
}
list->Append(wxo);
}
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return list;
}
//---------------------------------------------------------------------------
wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
- bool doSave = wxPyRestoreThread();
+ wxPyTState* state = wxPyBeginBlockThreads();
if (!PyList_Check(pyList)) {
PyErr_SetString(PyExc_TypeError, "Expected a list object.");
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return NULL;
}
int count = PyList_Size(pyList);
wxList* list = new wxList;
if (! list) {
PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return NULL;
}
for (int x=0; x<count; x++) {
wxRealPoint* wxo = NULL;
if (SWIG_GetPtrObj(pyo, (void **)&wxo, "_wxRealPoint_p")) {
PyErr_SetString(PyExc_TypeError, "Type error, expected list of wxRealPoint objects or 2-tuples");
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return NULL;
}
list->Append((wxObject*) new wxRealPoint(*wxo));
}
}
- wxPySaveThread(doSave);
+ wxPyEndBlockThreads(state);
return list;
}