diff options
author | Edward Thomson <ethomson@github.com> | 2016-03-21 16:51:45 -0400 |
---|---|---|
committer | Edward Thomson <ethomson@github.com> | 2016-03-24 15:59:48 -0400 |
commit | 247e3b4305f317bede88a225788239df57a8aa6d (patch) | |
tree | 767b0c9639a2299be4c650a8fdf7e51e3acae462 | |
parent | 0ef0b71ca5ce45a064dafe66462c7e9c143678ac (diff) | |
download | libgit2-247e3b4305f317bede88a225788239df57a8aa6d.tar.gz |
iterator: mandate `advance_over`
Since the three iterators implement `advance_over` differently,
mandate it and implement each.
-rw-r--r-- | src/iterator.c | 11 | ||||
-rw-r--r-- | src/iterator.h | 6 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/iterator.c b/src/iterator.c index 720a3d17a..cf3e29b71 100644 --- a/src/iterator.c +++ b/src/iterator.c @@ -1070,6 +1070,15 @@ static int tree_iterator_advance_into( return tree_iterator_advance(out, i); } +static int tree_iterator_advance_over( + const git_index_entry **out, + git_iterator_status_t *status, + git_iterator *i) +{ + *status = GIT_ITERATOR_STATUS_NORMAL; + return git_iterator_advance(out, i); +} + static void tree_iterator_clear(tree_iterator *iter) { while (iter->frames.size) @@ -1143,7 +1152,7 @@ int git_iterator_for_tree( tree_iterator_current, tree_iterator_advance, tree_iterator_advance_into, - NULL, /* advance_over */ + tree_iterator_advance_over, tree_iterator_reset, tree_iterator_reset_range, tree_iterator_at_end, diff --git a/src/iterator.h b/src/iterator.h index 460f9475a..51ba3f777 100644 --- a/src/iterator.h +++ b/src/iterator.h @@ -217,11 +217,7 @@ GIT_INLINE(int) git_iterator_advance_over( git_iterator_status_t *status, git_iterator *iter) { - if (iter->cb->advance_over) - return iter->cb->advance_over(entry, status, iter); - - *status = GIT_ITERATOR_STATUS_NORMAL; - return git_iterator_advance(entry, iter); + return iter->cb->advance_over(entry, status, iter); } /** |