diff options
Diffstat (limited to 'src/modules/module-stream-restore.c')
-rw-r--r-- | src/modules/module-stream-restore.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c index 02c312e3..becdb54a 100644 --- a/src/modules/module-stream-restore.c +++ b/src/modules/module-stream-restore.c @@ -647,8 +647,9 @@ static void handle_add_entry(DBusConnection *conn, DBusMessage *msg, void *userd } else { dbus_entry = dbus_entry_new(u, name); - pa_assert(pa_hashmap_put(u->dbus_entries, dbus_entry->entry_name, dbus_entry) >= 0); + pa_assert_se(pa_hashmap_put(u->dbus_entries, dbus_entry->entry_name, dbus_entry) == 0); + e = pa_xnew0(struct entry, 1); e->muted_valid = TRUE; e->volume_valid = !!map.channels; e->device_valid = !!device[0]; @@ -1245,10 +1246,10 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 #ifdef HAVE_DBUS if (created_new_entry) { de = dbus_entry_new(u, name); - pa_hashmap_put(u->dbus_entries, de->entry_name, de); + pa_assert_se(pa_hashmap_put(u->dbus_entries, de->entry_name, de) == 0); send_new_entry_signal(de); } else { - pa_assert((de = pa_hashmap_get(u->dbus_entries, name))); + pa_assert_se(de = pa_hashmap_get(u->dbus_entries, name)); if (device_updated) send_device_updated_signal(de, &entry); @@ -1859,7 +1860,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio } else { de = dbus_entry_new(u, name); - pa_assert_se(pa_hashmap_put(u->dbus_entries, de->entry_name, de)); + pa_assert_se(pa_hashmap_put(u->dbus_entries, de->entry_name, de) == 0); send_new_entry_signal(de); } #endif @@ -2043,14 +2044,19 @@ int pa__init(pa_module*m) { pa_datum next_key; char *name; struct dbus_entry *de; + struct entry *e; done = !pa_database_next(u->database, &key, &next_key, NULL); name = pa_xstrndup(key.data, key.size); pa_datum_free(&key); - de = dbus_entry_new(u, name); - pa_assert_se(pa_hashmap_put(u->dbus_entries, de->entry_name, de) >= 0); + /* Use read_entry() for checking that the entry is valid. */ + if ((e = read_entry(u, name))) { + de = dbus_entry_new(u, name); + pa_assert_se(pa_hashmap_put(u->dbus_entries, de->entry_name, de) == 0); + pa_xfree(e); + } pa_xfree(name); |