path: root/packfile.h
diff options
authorJeff King <>2020-02-24 04:27:36 (GMT)
committerJunio C Hamano <>2020-02-24 20:55:42 (GMT)
commit0763671b8e0b3ef873df13c741a911b809e6813d (patch)
tree7a47629343f59d05256b72ab8d649000c7cd6745 /packfile.h
parent51ebf55b9309824346a6589c9f3b130c6f371b8f (diff)
nth_packed_object_oid(): use customary integer return
Our nth_packed_object_sha1() function returns NULL for error. So when we wrapped it with nth_packed_object_oid(), we kept the same semantics. But it's a bit funny, because the caller actually passes in an out parameter, and the pointer we return is just that same struct they passed to us (or NULL). It's not too terrible, but it does make the interface a little non-idiomatic. Let's switch to our usual "0 for success, negative for error" return value. Most callers either don't check it, or are trivially converted. The one that requires the biggest change is actually improved, as we can ditch an extra aliased pointer variable. Since we are changing the interface in a subtle way that the compiler wouldn't catch, let's also change the name to catch any topics in flight. We can drop the 'o' and make it nth_packed_object_id(). That's slightly shorter, but also less redundant since the 'o' stands for "object" already. Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'packfile.h')
1 files changed, 2 insertions, 3 deletions
diff --git a/packfile.h b/packfile.h
index ec536a4..95b83ba 100644
--- a/packfile.h
+++ b/packfile.h
@@ -129,10 +129,9 @@ int bsearch_pack(const struct object_id *oid, const struct packed_git *p, uint32
const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t n);
* Like nth_packed_object_sha1, but write the data into the object specified by
- * the the first argument. Returns the first argument on success, and NULL on
- * error.
+ * the the first argument. Returns 0 on success, negative otherwise.
-const struct object_id *nth_packed_object_oid(struct object_id *, struct packed_git *, uint32_t n);
+int nth_packed_object_id(struct object_id *, struct packed_git *, uint32_t n);
* Return the offset of the nth object within the specified packfile.