diff options
Diffstat (limited to 'sha1-array.c')
| -rw-r--r-- | sha1-array.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/sha1-array.c b/sha1-array.c index 7d646ab5b8..265941fbf4 100644 --- a/sha1-array.c +++ b/sha1-array.c @@ -35,16 +35,32 @@ int oid_array_lookup(struct oid_array *array, const struct object_id *oid) void oid_array_clear(struct oid_array *array) { - free(array->oid); - array->oid = NULL; + FREE_AND_NULL(array->oid); array->nr = 0; array->alloc = 0; array->sorted = 0; } + +int oid_array_for_each(struct oid_array *array, + for_each_oid_fn fn, + void *data) +{ + int i; + + /* No oid_array_sort() here! See the api-oid-array.txt docs! */ + + for (i = 0; i < array->nr; i++) { + int ret = fn(array->oid + i, data); + if (ret) + return ret; + } + return 0; +} + int oid_array_for_each_unique(struct oid_array *array, - for_each_oid_fn fn, - void *data) + for_each_oid_fn fn, + void *data) { int i; |
