From 36c0254a850bf3b24cfd67175cd17bc6afa6035b Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 5 Oct 2008 21:00:39 -0700 Subject: songvec: add songvec_for_each iterator This is so we can more consistently deal with locking needed for thread-safety in iterator functions. --- src/songvec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/songvec.c') diff --git a/src/songvec.c b/src/songvec.c index 969e67220..50694c68a 100644 --- a/src/songvec.c +++ b/src/songvec.c @@ -68,6 +68,19 @@ void songvec_destroy(struct songvec *sv) sv->nr = 0; } +int songvec_for_each(struct songvec *sv, int (*fn)(Song *, void *), void *arg) +{ + int i; + Song **sp = sv->base; + + for (i = sv->nr; --i >= 0; ) { + if (fn(*sp++, arg) < 0) + return -1; + } + + return 0; +} + int songvec_write(struct songvec *sv, int fd, int extra) { int i; -- cgit v1.2.3