diff --git a/panda/src/ode/odeBody.I b/panda/src/ode/odeBody.I index 86896d4f2d..24b13e6e8e 100755 --- a/panda/src/ode/odeBody.I +++ b/panda/src/ode/odeBody.I @@ -98,6 +98,7 @@ set_data(void *data) { #ifdef HAVE_PYTHON INLINE void OdeBody:: set_data(PyObject *data) { + Py_XDECREF((PyObject*) dBodyGetData(_id)); Py_XINCREF(data); dBodySetData(_id, data); } diff --git a/panda/src/ode/odeBody.cxx b/panda/src/ode/odeBody.cxx index 19d0e6f651..27a4d74c8e 100755 --- a/panda/src/ode/odeBody.cxx +++ b/panda/src/ode/odeBody.cxx @@ -34,6 +34,9 @@ OdeBody:: void OdeBody:: destroy() { +#ifdef HAVE_PYTHON + Py_XDECREF((PyObject*) dBodyGetData(_id)); +#endif nassertv(_id); dBodyDestroy(_id); }