Răsfoiți Sursa

Memory leak

rdb 16 ani în urmă
părinte
comite
682e5608e7
2 a modificat fișierele cu 4 adăugiri și 0 ștergeri
  1. 1 0
      panda/src/ode/odeBody.I
  2. 3 0
      panda/src/ode/odeBody.cxx

+ 1 - 0
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);
 }

+ 3 - 0
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);
 }