cleaner cleanup
authorJosé Bollo <jose.bollo@iot.bzh>
Thu, 21 Apr 2016 16:02:51 +0000 (18:02 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 21 Apr 2016 16:02:51 +0000 (18:02 +0200)
Change-Id: I5c7db64bcaf0757db33e3b96cf12890d98ef87a1
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/utils-jbus.c

index 3bea2c2..408d65c 100644 (file)
@@ -719,9 +719,20 @@ void jbus_addref(struct jbus *jbus)
 void jbus_unref(struct jbus *jbus)
 {
        struct jservice *srv;
+       struct jsignal *sig;
+       struct jrespw *wtr;
        if (!--jbus->refcount) {
                if (jbus->connection != NULL)
                        dbus_connection_unref(jbus->connection);
+               while ((wtr = jbus->waiters) != NULL) {
+                       jbus->waiters = wtr->next;
+                       free(wtr);
+               }
+               while ((sig = jbus->signals) != NULL) {
+                       jbus->signals = sig->next;
+                       free(sig->name);
+                       free(sig);
+               }
                while ((srv = jbus->services) != NULL) {
                        jbus->services = srv->next;
                        free(srv->method);