summaryrefslogtreecommitdiffstats
path: root/src/modules/module-device-manager.c
diff options
context:
space:
mode:
authorColin Guthrie <cguthrie@mandriva.org>2009-09-20 14:39:41 +0100
committerColin Guthrie <cguthrie@mandriva.org>2009-10-01 09:08:30 +0100
commite589f38e227a53e1ed57491528c1290ddf8c1da7 (patch)
tree44633a32d66e297d626186f40ee4b11144021c6a /src/modules/module-device-manager.c
parent180250096765ccbabfd4194b186c2d00110df70d (diff)
device-manager: Fix the freeing of the datum on prefer/defer.
Also fix a log typo
Diffstat (limited to 'src/modules/module-device-manager.c')
-rw-r--r--src/modules/module-device-manager.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/modules/module-device-manager.c b/src/modules/module-device-manager.c
index f759e340..75059f74 100644
--- a/src/modules/module-device-manager.c
+++ b/src/modules/module-device-manager.c
@@ -366,10 +366,9 @@ static pa_hook_result_t source_new_hook_callback(pa_core *c, pa_source_new_data
name = pa_sprintf_malloc("source:%s", new_data->name);
if ((e = read_entry(u, name))) {
-
if (strncmp(e->description, pa_proplist_gets(new_data->proplist, PA_PROP_DEVICE_DESCRIPTION), sizeof(e->description)) != 0) {
/* NB, We cannot detect if we are a monitor here... this could mess things up a bit... */
- pa_log_info("Restoring description for sink %s.", new_data->name);
+ pa_log_info("Restoring description for source %s.", new_data->name);
pa_proplist_sets(new_data->proplist, PA_PROP_DEVICE_DESCRIPTION, e->description);
}
@@ -644,8 +643,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
goto fail;
if ((e = read_entry(u, device)) && ENTRY_VERSION == e->version) {
- pa_datum key;
- pa_datum data;
+ pa_datum key, data;
pa_bool_t done;
char* prefix;
uint32_t priority;
@@ -673,7 +671,6 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
struct entry *e2;
name = pa_xstrndup(key.data, key.size);
- pa_datum_free(&key);
if ((e2 = read_entry(u, name))) {
if (SUBCOMMAND_PREFER_DEVICE == command) {
@@ -697,12 +694,14 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
if (pa_database_set(u->database, &key, &data, FALSE))
pa_log_warn("Could not save device");
}
+
pa_xfree(e2);
}
pa_xfree(name);
}
+ pa_datum_free(&key);
key = next_key;
}