diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-10-11 22:03:05 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-10-12 05:27:33 -0700 |
commit | 4111d84ad5b72f871d35f76a47765c138a201611 (patch) | |
tree | fd87325733161d0aff350531b8001601bd081b2e /src/dirvec.c | |
parent | 7284123e3555159c6550d5ac57b8334bdd1af5c1 (diff) | |
download | mpd-4111d84ad5b72f871d35f76a47765c138a201611.tar.gz mpd-4111d84ad5b72f871d35f76a47765c138a201611.tar.xz mpd-4111d84ad5b72f871d35f76a47765c138a201611.zip |
dirvec: add dirvec_for_each iterator
This will make it easier to introduce locking
Diffstat (limited to '')
-rw-r--r-- | src/dirvec.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/dirvec.c b/src/dirvec.c index fdfbb3434..73375fc70 100644 --- a/src/dirvec.c +++ b/src/dirvec.c @@ -68,3 +68,19 @@ void dirvec_destroy(struct dirvec *dv) } dv->nr = 0; } + +int dirvec_for_each(const struct dirvec *dv, + int (*fn)(struct directory *, void *), void *arg) +{ + size_t i; + + for (i = 0; i < dv->nr; ++i) { + struct directory *dir = dv->base[i]; + + assert(dir); + if (fn(dir, arg) < 0) + return -1; + } + + return 0; +} |