From c0bd0cf7ff0abdc8b51d58fbd7819ec54917be30 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 11 Jul 2010 03:59:49 +0200 Subject: [PATCH] dbus: don't hit an assert if we sent a changed signal for something not in the dbus queue (i.e. because it was deleted before it was fully created --- src/dbus-job.c | 7 ++++--- src/dbus-unit.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/dbus-job.c b/src/dbus-job.c index 653e11d18..4572589cd 100644 --- a/src/dbus-job.c +++ b/src/dbus-job.c @@ -172,10 +172,11 @@ void bus_job_send_change_signal(Job *j) { DBusMessage *m = NULL; assert(j); - assert(j->in_dbus_queue); - LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); - j->in_dbus_queue = false; + if (j->in_dbus_queue) { + LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); + j->in_dbus_queue = false; + } if (!bus_has_subscriber(j->manager) && !j->bus_client) { j->sent_dbus_new_signal = true; diff --git a/src/dbus-unit.c b/src/dbus-unit.c index ad0c193ea..735e5a53f 100644 --- a/src/dbus-unit.c +++ b/src/dbus-unit.c @@ -371,10 +371,11 @@ void bus_unit_send_change_signal(Unit *u) { DBusMessage *m = NULL; assert(u); - assert(u->meta.in_dbus_queue); - LIST_REMOVE(Meta, dbus_queue, u->meta.manager->dbus_unit_queue, &u->meta); - u->meta.in_dbus_queue = false; + if (u->meta.in_dbus_queue) { + LIST_REMOVE(Meta, dbus_queue, u->meta.manager->dbus_unit_queue, &u->meta); + u->meta.in_dbus_queue = false; + } if (!bus_has_subscriber(u->meta.manager)) { u->meta.sent_dbus_new_signal = true; -- 2.30.2