builtin/fetch-pack: remove constants with parse_oid_hex
authorbrian m. carlson <sandals@crustytoothpaste.net>
Mon, 15 Oct 2018 00:01:52 +0000 (00:01 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 15 Oct 2018 03:53:15 +0000 (12:53 +0900)
Instead of using GIT_SHA1_HEXSZ, use parse_oid_hex to compute a pointer
and use that in comparisons. This is both simpler to read and works
independent of the hash length. Update references to SHA-1 in the same
function to refer to object IDs instead.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch-pack.c
index 1a1bc63566b44bc83c8429463104615d1b2117ff..63e69a58011a4d3c774cd3c81ae9f10e3a96efe6 100644 (file)
@@ -16,13 +16,14 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc,
 {
        struct ref *ref;
        struct object_id oid;
 {
        struct ref *ref;
        struct object_id oid;
+       const char *p;
 
 
-       if (!get_oid_hex(name, &oid)) {
-               if (name[GIT_SHA1_HEXSZ] == ' ') {
-                       /* <sha1> <ref>, find refname */
-                       name += GIT_SHA1_HEXSZ + 1;
-               } else if (name[GIT_SHA1_HEXSZ] == '\0') {
-                       ; /* <sha1>, leave sha1 as name */
+       if (!parse_oid_hex(name, &oid, &p)) {
+               if (*p == ' ') {
+                       /* <oid> <ref>, find refname */
+                       name = p + 1;
+               } else if (*p == '\0') {
+                       ; /* <oid>, leave oid as name */
                } else {
                        /* <ref>, clear cruft from oid */
                        oidclr(&oid);
                } else {
                        /* <ref>, clear cruft from oid */
                        oidclr(&oid);