[rhythmbox] rhythmdb: don't write empty sortnames and musicbrainz IDs to disk
- From: Jonathan Matthew <jmatthew src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rhythmbox] rhythmdb: don't write empty sortnames and musicbrainz IDs to disk
- Date: Sun, 31 Jan 2010 04:27:47 +0000 (UTC)
commit 2f69fc7681fb73e39a61aaffc19a7398f06a9fa2
Author: Jonathan Matthew <jonathan d14n org>
Date: Sun Jan 31 14:25:35 2010 +1000
rhythmdb: don't write empty sortnames and musicbrainz IDs to disk
This reduces the on-disk size of my database by about 25%.
rhythmdb/rhythmdb-tree.c | 28 +++++++++++++++++-----------
1 files changed, 17 insertions(+), 11 deletions(-)
---
diff --git a/rhythmdb/rhythmdb-tree.c b/rhythmdb/rhythmdb-tree.c
index 905c2b5..4edca7c 100644
--- a/rhythmdb/rhythmdb-tree.c
+++ b/rhythmdb/rhythmdb-tree.c
@@ -836,6 +836,16 @@ save_entry_string (struct RhythmDBTreeSaveContext *ctx,
}
static void
+save_entry_string_if_set (struct RhythmDBTreeSaveContext *ctx,
+ const xmlChar *elt_name,
+ const char *str)
+{
+ if (str == NULL || str[0] == '\0')
+ return;
+ save_entry_string (ctx, elt_name, str);
+}
+
+static void
save_entry_int (struct RhythmDBTreeSaveContext *ctx,
const xmlChar *elt_name,
int num)
@@ -959,22 +969,22 @@ save_entry (RhythmDBTree *db,
save_entry_string(ctx, elt_name, rb_refstring_get (entry->genre));
break;
case RHYTHMDB_PROP_MUSICBRAINZ_TRACKID:
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->musicbrainz_trackid));
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->musicbrainz_trackid));
break;
case RHYTHMDB_PROP_MUSICBRAINZ_ARTISTID:
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->musicbrainz_artistid));
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->musicbrainz_artistid));
break;
case RHYTHMDB_PROP_MUSICBRAINZ_ALBUMID:
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->musicbrainz_albumid));
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->musicbrainz_albumid));
break;
case RHYTHMDB_PROP_MUSICBRAINZ_ALBUMARTISTID:
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->musicbrainz_albumartistid));
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->musicbrainz_albumartistid));
break;
case RHYTHMDB_PROP_ARTIST_SORTNAME:
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->artist_sortname));
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->artist_sortname));
break;
case RHYTHMDB_PROP_ALBUM_SORTNAME:
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->album_sortname));
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->album_sortname));
break;
case RHYTHMDB_PROP_TRACK_NUMBER:
save_entry_ulong (ctx, elt_name, entry->tracknum, FALSE);
@@ -1010,11 +1020,7 @@ save_entry (RhythmDBTree *db,
save_entry_string(ctx, elt_name, rb_refstring_get (entry->location));
break;
case RHYTHMDB_PROP_MOUNTPOINT:
- /* Avoid crashes on exit when upgrading from 0.8
- * and no mountpoint is available from some entries */
- if (entry->mountpoint) {
- save_entry_string(ctx, elt_name, rb_refstring_get (entry->mountpoint));
- }
+ save_entry_string_if_set (ctx, elt_name, rb_refstring_get (entry->mountpoint));
break;
case RHYTHMDB_PROP_FILE_SIZE:
save_entry_uint64(ctx, elt_name, entry->file_size);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]