소스 검색

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);
 }