Pārlūkot izejas kodu

Client destructor: free callbacks and associated arguments

Fabian Peter Hammerle 10 gadi atpakaļ
vecāks
revīzija
4658cfe446
1 mainītis faili ar 10 papildinājumiem un 0 dzēšanām
  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);
 }