cat-file: use oidset check-and-insert
authorJeff King <peff@peff.net>
Tue, 14 Aug 2018 18:14:27 +0000 (14:14 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 14 Aug 2018 19:27:53 +0000 (12:27 -0700)
We don't need to check if the oidset has our object before
we insert it; that's done as part of the insertion. We can
just rely on the return value from oidset_insert(), which
saves one hash lookup per object.

This measurable speedup is tiny and within the run-to-run
noise, but the result is simpler to read, too.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/cat-file.c
index 45992c9be90efa6e36b296fa03fd030d014e3927..04b5cda191804ce9727a1a01901c88222fb69535 100644 (file)
@@ -443,9 +443,8 @@ static int batch_unordered_object(const struct object_id *oid, void *vdata)
 {
        struct object_cb_data *data = vdata;
 
-       if (oidset_contains(data->seen, oid))
+       if (oidset_insert(data->seen, oid))
                return 0;
-       oidset_insert(data->seen, oid);
 
        return batch_object_cb(oid, data);
 }