sha1_array: let callbacks interrupt iteration

The callbacks for iterating a sha1_array must have a void
return.  This is unlike our usual for_each semantics, where
a callback may interrupt iteration and have its value
propagated. Let's switch it to the usual form, which will
enable its use in more places (e.g., where we are replacing
an existing iteration with a different data structure).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2016-09-26 08:00:29 -04:00
committed by Junio C Hamano
parent 0c99171ad2
commit 16ddcd403b
7 changed files with 24 additions and 12 deletions

View File

@ -14,10 +14,10 @@ void sha1_array_append(struct sha1_array *array, const unsigned char *sha1);
int sha1_array_lookup(struct sha1_array *array, const unsigned char *sha1);
void sha1_array_clear(struct sha1_array *array);
typedef void (*for_each_sha1_fn)(const unsigned char sha1[20],
void *data);
void sha1_array_for_each_unique(struct sha1_array *array,
for_each_sha1_fn fn,
typedef int (*for_each_sha1_fn)(const unsigned char sha1[20],
void *data);
int sha1_array_for_each_unique(struct sha1_array *array,
for_each_sha1_fn fn,
void *data);
#endif /* SHA1_ARRAY_H */