ref_remote_duplicates(): extract a function handle_duplicate()

It will become more complex in a moment. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Michael Haggerty committed Oct 30, 2013 at 06:33 UTC df02ebdac8bdf0edd30e85c9902d177dccfac276
1 file changed +10 -8
remote.c
+10 -8
@@ -745,6 +745,15 @@ int for_each_remote(each_remote_fn fn, void *priv)
745 return result;
746 }
747
748 +static void handle_duplicate(struct ref *ref1, struct ref *ref2)
749 +{
750 + if (strcmp(ref1->name, ref2->name))
751 + die("%s tracks both %s and %s",
752 + ref2->peer_ref->name, ref1->name, ref2->name);
753 + free(ref2->peer_ref);
754 + free(ref2);
755 +}
756 +
757 struct ref *ref_remove_duplicates(struct ref *ref_map)
758 {
759 struct string_list refs = STRING_LIST_INIT_NODUP;
@@ -766,14 +775,7 @@ struct ref *ref_remove_duplicates(struct ref *ref_map)
775
776 if (item->util) {
777 /* Entry already existed */
769 - if (strcmp(((struct ref *)item->util)->name,
770 - ref->name))
771 - die("%s tracks both %s and %s",
772 - ref->peer_ref->name,
773 - ((struct ref *)item->util)->name,
774 - ref->name);
775 - free(ref->peer_ref);
776 - free(ref);
778 + handle_duplicate((struct ref *)item->util, ref);
779 } else {
780 *p = ref;
781 p = &ref->next;