Fix iterator check and return value

There is a little cleanup necessary from PR #843.  Since the
new callbacks return `GIT_EUSER` we have to be a little careful
about return values when they are used internally to the library.

Also, callbacks should be checked for non-zero return values,
not just less than zero.
This commit is contained in:
Russell Belfer 2012-08-06 11:06:05 -07:00
parent 81f73a872c
commit e4607392b5

View File

@ -420,7 +420,7 @@ int git_remote_ls(git_remote *remote, git_headlist_cb list_cb, void *payload)
pkt = (git_pkt_ref *)p; pkt = (git_pkt_ref *)p;
if (list_cb(&pkt->head, payload) < 0) if (list_cb(&pkt->head, payload))
return GIT_EUSER; return GIT_EUSER;
} }
@ -596,6 +596,11 @@ int git_remote_list(git_strarray *remotes_list, git_repository *repo)
} }
git_vector_free(&list); git_vector_free(&list);
/* cb error is converted to GIT_EUSER by git_config_foreach */
if (error == GIT_EUSER)
error = -1;
return error; return error;
} }