mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
Compatibility with Python 2.3
This commit is contained in:
parent
89c0c5d5ff
commit
227c7c3497
@ -64,6 +64,25 @@ typedef int Py_ssize_t;
|
|||||||
|
|
||||||
#endif // PY_VERSION_HEX
|
#endif // PY_VERSION_HEX
|
||||||
|
|
||||||
|
// 2.4 macros which aren't available in 2.3
|
||||||
|
#ifndef Py_RETURN_NONE
|
||||||
|
inline PyObject* doPy_RETURN_NONE()
|
||||||
|
{ Py_INCREF(Py_None); return Py_None; }
|
||||||
|
#define Py_RETURN_NONE return doPy_RETURN_NONE()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef Py_RETURN_TRUE
|
||||||
|
inline PyObject* doPy_RETURN_TRUE()
|
||||||
|
{Py_INCREF(Py_True); return Py_True;}
|
||||||
|
#define Py_RETURN_TRUE return doPy_RETURN_TRUE()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef Py_RETURN_FALSE
|
||||||
|
inline PyObject* doPy_RETURN_FALSE()
|
||||||
|
{Py_INCREF(Py_False); return Py_False;}
|
||||||
|
#define Py_RETURN_FALSE return doPy_RETURN_FALSE()
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
#define PY_PANDA_SMALLER_FOOTPRINT 1
|
#define PY_PANDA_SMALLER_FOOTPRINT 1
|
||||||
|
@ -378,6 +378,7 @@ do_python_task() {
|
|||||||
Thread::get_current_thread()->call_python_func(_function, args);
|
Thread::get_current_thread()->call_python_func(_function, args);
|
||||||
Py_DECREF(args);
|
Py_DECREF(args);
|
||||||
|
|
||||||
|
#ifdef PyGen_Check
|
||||||
if (result != (PyObject *)NULL && PyGen_Check(result)) {
|
if (result != (PyObject *)NULL && PyGen_Check(result)) {
|
||||||
// The function has yielded a generator. We will call into that
|
// The function has yielded a generator. We will call into that
|
||||||
// henceforth, instead of calling the function from the top
|
// henceforth, instead of calling the function from the top
|
||||||
@ -392,6 +393,7 @@ do_python_task() {
|
|||||||
_generator = result;
|
_generator = result;
|
||||||
result = NULL;
|
result = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_generator != (PyObject *)NULL) {
|
if (_generator != (PyObject *)NULL) {
|
||||||
@ -597,7 +599,7 @@ call_function(PyObject *function) {
|
|||||||
PyObject *self =
|
PyObject *self =
|
||||||
DTool_CreatePyInstanceTyped(this, Dtool_TypedReferenceCount,
|
DTool_CreatePyInstanceTyped(this, Dtool_TypedReferenceCount,
|
||||||
true, false, get_type_index());
|
true, false, get_type_index());
|
||||||
PyObject *args = PyTuple_Pack(1, self);
|
PyObject *args = Py_BuildValue("(O)", self);
|
||||||
Py_DECREF(self);
|
Py_DECREF(self);
|
||||||
|
|
||||||
PyObject *result = PyObject_CallObject(function, args);
|
PyObject *result = PyObject_CallObject(function, args);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user