upload-pack: rewrite functions to take object_id arguments

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Michael Haggerty committed May 25, 2015 at 18:39 UTC 363e98bfc27d810a0e41684b7744cc587c15c330
1 file changed +14 -18
upload-pack.c
+14 -18
@@ -681,9 +681,9 @@ static void receive_needs(void)
681 }
682
683 /* return non-zero if the ref is hidden, otherwise 0 */
684 -static int mark_our_ref(const char *refname, const unsigned char *sha1)
684 +static int mark_our_ref(const char *refname, const struct object_id *oid)
685 {
686 - struct object *o = lookup_unknown_object(sha1);
686 + struct object *o = lookup_unknown_object(oid->hash);
687
688 if (ref_is_hidden(refname)) {
689 o->flags |= HIDDEN_REF;
@@ -693,9 +693,10 @@ static int mark_our_ref(const char *refname, const unsigned char *sha1)
693 return 0;
694 }
695
696 -static int check_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
696 +static int check_ref(const char *refname, const struct object_id *oid,
697 + int flag, void *cb_data)
698 {
698 - mark_our_ref(refname, sha1);
699 + mark_our_ref(refname, oid);
700 return 0;
701 }
702
@@ -709,7 +710,8 @@ static void format_symref_info(struct strbuf *buf, struct string_list *symref)
710 strbuf_addf(buf, " symref=%s:%s", item->string, (char *)item->util);
711 }
712
712 -static int send_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
713 +static int send_ref(const char *refname, const struct object_id *oid,
714 + int flag, void *cb_data)
715 {
716 static const char *capabilities = "multi_ack thin-pack side-band"
717 " side-band-64k ofs-delta shallow no-progress"
@@ -717,7 +719,7 @@ static int send_ref(const char *refname, const unsigned char *sha1, int flag, vo
719 const char *refname_nons = strip_namespace(refname);
720 unsigned char peeled[20];
721
720 - if (mark_our_ref(refname, sha1))
722 + if (mark_our_ref(refname, oid))
723 return 0;
724
725 if (capabilities) {
@@ -725,7 +727,7 @@ static int send_ref(const char *refname, const unsigned char *sha1, int flag, vo
727
728 format_symref_info(&symref_info, cb_data);
729 packet_write(1, "%s %s%c%s%s%s%s agent=%s\n",
728 - sha1_to_hex(sha1), refname_nons,
730 + oid_to_hex(oid), refname_nons,
731 0, capabilities,
732 allow_tip_sha1_in_want ? " allow-tip-sha1-in-want" : "",
733 stateless_rpc ? " no-done" : "",
@@ -733,7 +735,7 @@ static int send_ref(const char *refname, const unsigned char *sha1, int flag, vo
735 git_user_agent_sanitized());
736 strbuf_release(&symref_info);
737 } else {
736 - packet_write(1, "%s %s\n", sha1_to_hex(sha1), refname_nons);
738 + packet_write(1, "%s %s\n", oid_to_hex(oid), refname_nons);
739 }
740 capabilities = NULL;
741 if (!peel_ref(refname, peeled))
@@ -765,20 +767,14 @@ static void upload_pack(void)
767 head_ref_namespaced(find_symref, &symref);
768
769 if (advertise_refs || !stateless_rpc) {
768 - struct each_ref_fn_sha1_adapter wrapped_send_ref =
769 - {send_ref, &symref};
770 -
770 reset_timeout();
772 - head_ref_namespaced(each_ref_fn_adapter, &wrapped_send_ref);
773 - for_each_namespaced_ref(each_ref_fn_adapter, &wrapped_send_ref);
771 + head_ref_namespaced(send_ref, &symref);
772 + for_each_namespaced_ref(send_ref, &symref);
773 advertise_shallow_grafts(1);
774 packet_flush(1);
775 } else {
777 - struct each_ref_fn_sha1_adapter wrapped_check_ref =
778 - {check_ref, NULL};
779 -
780 - head_ref_namespaced(each_ref_fn_adapter, &wrapped_check_ref);
781 - for_each_namespaced_ref(each_ref_fn_adapter, &wrapped_check_ref);
776 + head_ref_namespaced(check_ref, NULL);
777 + for_each_namespaced_ref(check_ref, NULL);
778 }
779 string_list_clear(&symref, 1);
780 if (advertise_refs)