浏览代码

Client destructor: free callbacks and associated arguments

Fabian Peter Hammerle 9 年之前
父节点
当前提交
4658cfe446
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      jack.c

+ 10 - 0
jack.c

@@ -411,6 +411,16 @@ static PyObject* client_set_shutdown_callback(Client* self, PyObject* args)
 static void client_dealloc(Client* self)
 {
     jack_client_close(self->client);
+
+    Py_XDECREF(self->port_registered_callback);
+    Py_XDECREF(self->port_registered_callback_argument);
+    Py_XDECREF(self->port_renamed_callback);
+    Py_XDECREF(self->port_renamed_callback_argument);
+    Py_XDECREF(self->port_unregistered_callback);
+    Py_XDECREF(self->port_unregistered_callback_argument);
+    Py_XDECREF(self->shutdown_callback);
+    Py_XDECREF(self->shutdown_callback_argument);
+
     self->ob_type->tp_free((PyObject*)self);
 }