diff options
-rw-r--r-- | src/song_save.c | 3 | ||||
-rw-r--r-- | src/tag.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/song_save.c b/src/song_save.c index 1d2724e83..8f4e1614d 100644 --- a/src/song_save.c +++ b/src/song_save.c @@ -80,7 +80,8 @@ insertSongIntoList(struct songvec *sv, struct song *newsong) tag_end_add(newsong->tag); } else { /* prevent dupes, just update the existing song info */ if (existing->mtime != newsong->mtime) { - tag_free(existing->tag); + if (existing->tag != NULL) + tag_free(existing->tag); if (newsong->tag) tag_end_add(newsong->tag); existing->tag = newsong->tag; @@ -163,6 +163,8 @@ void tag_free(struct tag *tag) { int i; + assert(tag != NULL); + g_mutex_lock(tag_pool_lock); for (i = tag->num_items; --i >= 0; ) tag_pool_put_item(tag->items[i]); |