aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-12 18:57:12 +0100
committerMax Kellermann <max@duempel.org>2009-02-12 18:57:12 +0100
commit17197ae1f495aa492f09615d39d7eec14e163f5f (patch)
treefbe4a0a0b6c3d75c2bb50ac799a36189b80a8104
parent5f84fe2717628fcd5689060ca7e4556ade577b4a (diff)
downloadmpd-17197ae1f495aa492f09615d39d7eec14e163f5f.tar.gz
mpd-17197ae1f495aa492f09615d39d7eec14e163f5f.tar.xz
mpd-17197ae1f495aa492f09615d39d7eec14e163f5f.zip
update: recursively purge deleted directories
When a directory is deleted, MPD deleted only the directory from the database; it did not bother to walk the full tree to free all memory and to remove deleted songs from the playlist. Replace a dirvec_delete() with delete_directory().
-rw-r--r--NEWS1
-rw-r--r--src/update.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index d3ad7fe8f..be4ef103c 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,7 @@ ver 0.14.2 (2009/??/??)
- shout: clear buffer before calling the encoder
* mapper: remove trailing slashes from music_directory
* player: set player error when output device fails
+* update: recursively purge deleted directories
ver 0.14.1 (2009/01/17)
diff --git a/src/update.c b/src/update.c
index 58f1b08d1..48ca0c437 100644
--- a/src/update.c
+++ b/src/update.c
@@ -192,7 +192,7 @@ removeDeletedFromDirectory(char *path_max_tmp, struct directory *directory)
S_ISDIR(st.st_mode)))
continue;
LOG("removing directory: %s\n", dv->base[i]->path);
- dirvec_delete(dv, dv->base[i]);
+ delete_directory(dv->base[i]);
modified = true;
}