瀏覽代碼

Memory leak

rdb 16 年之前
父節點
當前提交
682e5608e7
共有 2 個文件被更改,包括 4 次插入0 次删除
  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
 #ifdef HAVE_PYTHON
 INLINE void OdeBody::
 INLINE void OdeBody::
 set_data(PyObject *data) {
 set_data(PyObject *data) {
+  Py_XDECREF((PyObject*) dBodyGetData(_id));
   Py_XINCREF(data);
   Py_XINCREF(data);
   dBodySetData(_id, data);
   dBodySetData(_id, data);
 }
 }

+ 3 - 0
panda/src/ode/odeBody.cxx

@@ -34,6 +34,9 @@ OdeBody::
 
 
 void OdeBody::
 void OdeBody::
 destroy() {
 destroy() {
+#ifdef HAVE_PYTHON
+  Py_XDECREF((PyObject*) dBodyGetData(_id));
+#endif
   nassertv(_id);
   nassertv(_id);
   dBodyDestroy(_id);
   dBodyDestroy(_id);
 }
 }