summaryrefslogtreecommitdiff
path: root/src/submodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/submodule.c')
-rw-r--r--src/submodule.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/submodule.c b/src/submodule.c
index f4fbcd35a..16114d8ac 100644
--- a/src/submodule.c
+++ b/src/submodule.c
@@ -1143,9 +1143,7 @@ static int load_submodule_config_from_index(
(error = git_iterator_for_index(&i, index, 0, NULL, NULL)) < 0)
return error;
- error = git_iterator_current(&entry, i);
-
- while (!error && entry != NULL) {
+ while (!(error = git_iterator_advance(&entry, i))) {
if (S_ISGITLINK(entry->mode)) {
error = submodule_load_from_index(repo, entry);
@@ -1158,10 +1156,11 @@ static int load_submodule_config_from_index(
if (strcmp(entry->path, GIT_MODULES_FILE) == 0)
git_oid_cpy(gitmodules_oid, &entry->oid);
}
-
- error = git_iterator_advance(&entry, i);
}
+ if (error == GIT_ITEROVER)
+ error = 0;
+
git_iterator_free(i);
return error;
@@ -1183,9 +1182,7 @@ static int load_submodule_config_from_head(
return error;
}
- error = git_iterator_current(&entry, i);
-
- while (!error && entry != NULL) {
+ while (!(error = git_iterator_advance(&entry, i))) {
if (S_ISGITLINK(entry->mode)) {
error = submodule_load_from_head(repo, entry->path, &entry->oid);
@@ -1199,10 +1196,11 @@ static int load_submodule_config_from_head(
git_oid_iszero(gitmodules_oid))
git_oid_cpy(gitmodules_oid, &entry->oid);
}
-
- error = git_iterator_advance(&entry, i);
}
+ if (error == GIT_ITEROVER)
+ error = 0;
+
git_iterator_free(i);
git_tree_free(head);