Commit 0a2e10328aedae4e989c61f46c29f1fd26ae92d6

Edward Thomson 2016-03-17T15:19:45

iterator: drop `advance_into_or_over` Now that iterators do not return `GIT_ENOTFOUND` when advancing into an empty directory, we do not need a special `advance_into_or_over` function.

diff --git a/src/checkout.c b/src/checkout.c
index 0fbb7fc..fed1819 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -657,7 +657,7 @@ static int checkout_action(
 			if (cmp == 0) {
 				if (wd->mode == GIT_FILEMODE_TREE) {
 					/* case 2 - entry prefixed by workdir tree */
-					error = git_iterator_advance_into_or_over(wditem, workdir);
+					error = git_iterator_advance_into(wditem, workdir);
 					if (error < 0 && error != GIT_ITEROVER)
 						goto done;
 					continue;
diff --git a/src/iterator.h b/src/iterator.h
index d64d63f..85444f1 100644
--- a/src/iterator.h
+++ b/src/iterator.h
@@ -223,25 +223,6 @@ GIT_INLINE(int) git_iterator_advance_over(
 }
 
 /**
- * Advance into a tree or skip over it if it is empty.
- *
- * Because `git_iterator_advance_into` may return GIT_ENOTFOUND if the
- * directory is empty (only with filesystem and working directory
- * iterators) and a common response is to just call `git_iterator_advance`
- * when that happens, this bundles the two into a single simple call.
- */
-GIT_INLINE(int) git_iterator_advance_into_or_over(
-	const git_index_entry **entry, git_iterator *iter)
-{
-	int error = iter->cb->advance_into(entry, iter);
-	if (error == GIT_ENOTFOUND) {
-		giterr_clear();
-		error = iter->cb->advance(entry, iter);
-	}
-	return error;
-}
-
-/**
  * Go back to the start of the iteration.
  */
 GIT_INLINE(int) git_iterator_reset(git_iterator *iter)