From 46c263acc976a9615a322cff5ead41928c68e6ce Mon Sep 17 00:00:00 2001 From: Tanu Kaskinen Date: Tue, 26 May 2020 14:45:12 +0300 Subject: [PATCH] stream-restore: Drop the version field from the entry struct Storing the version in the entry struct is pointless. We should always write entries using the current version. When we encounter older versions when reading, those need to be converted to the current version anyway, because all code that uses the entry struct assumes that the data is stored according to the current version semantics. We're currently at the first version of the database entries, so currently there's no version conversion happening. I have a patch that will increment the entry version, so this is preparation for that. --- src/modules/module-stream-restore.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/modules/module-stream-restore.c b/src/modules/module-stream-restore.c index 0ef30f179..b6358fcca 100644 --- a/src/modules/module-stream-restore.c +++ b/src/modules/module-stream-restore.c @@ -116,7 +116,6 @@ struct userdata { #define ENTRY_VERSION 1 struct entry { - uint8_t version; bool muted_valid, volume_valid, device_valid, card_valid; bool muted; pa_channel_map channel_map; @@ -968,7 +967,6 @@ static void save_time_callback(pa_mainloop_api*a, pa_time_event* e, const struct static struct entry* entry_new(void) { struct entry *r = pa_xnew0(struct entry, 1); - r->version = ENTRY_VERSION; return r; } @@ -990,7 +988,7 @@ static bool entry_write(struct userdata *u, const char *name, const struct entry pa_assert(e); t = pa_tagstruct_new(); - pa_tagstruct_putu8(t, e->version); + pa_tagstruct_putu8(t, ENTRY_VERSION); pa_tagstruct_put_boolean(t, e->volume_valid); pa_tagstruct_put_channel_map(t, &e->channel_map); pa_tagstruct_put_cvolume(t, &e->volume); @@ -1108,6 +1106,7 @@ static struct entry *entry_read(struct userdata *u, const char *name) { pa_datum key, data; struct entry *e = NULL; pa_tagstruct *t = NULL; + uint8_t version; const char *device, *card; pa_assert(u); @@ -1124,8 +1123,8 @@ static struct entry *entry_read(struct userdata *u, const char *name) { t = pa_tagstruct_new_fixed(data.data, data.size); e = entry_new(); - if (pa_tagstruct_getu8(t, &e->version) < 0 || - e->version > ENTRY_VERSION || + if (pa_tagstruct_getu8(t, &version) < 0 || + version > ENTRY_VERSION || pa_tagstruct_get_boolean(t, &e->volume_valid) < 0 || pa_tagstruct_get_channel_map(t, &e->channel_map) < 0 || pa_tagstruct_get_cvolume(t, &e->volume) < 0 || @@ -1694,7 +1693,6 @@ static int fill_db(struct userdata *u, const char *filename) { struct entry e; pa_zero(e); - e.version = ENTRY_VERSION; e.volume_valid = true; pa_cvolume_set(&e.volume, 1, pa_sw_volume_from_dB(db)); pa_channel_map_init_mono(&e.channel_map);