fsck_handle_reflog_sha1(): new function
authorMichael Haggerty <mhagger@alum.mit.edu>
Mon, 8 Jun 2015 13:40:04 +0000 (15:40 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 8 Jun 2015 19:37:32 +0000 (12:37 -0700)
New function, extracted from fsck_handle_reflog_ent(). The extra
is_null_sha1() test for the new reference is currently unnecessary, as
reflogs are deleted when the reference itself is deleted. But it
doesn't hurt, either.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fsck.c
index 0c757862e8cd414c087b27a608281b66c8608a4b..295d3b9e9ed7c659a685f3db37e39a6a81fadeaa 100644 (file)
@@ -451,28 +451,29 @@ static void fsck_dir(int i, char *path)
 
 static int default_refs;
 
-static int fsck_handle_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
-               const char *email, unsigned long timestamp, int tz,
-               const char *message, void *cb_data)
+static void fsck_handle_reflog_sha1(unsigned char *sha1)
 {
        struct object *obj;
 
-       if (verbose)
-               fprintf(stderr, "Checking reflog %s->%s\n",
-                       sha1_to_hex(osha1), sha1_to_hex(nsha1));
-
-       if (!is_null_sha1(osha1)) {
-               obj = lookup_object(osha1);
+       if (!is_null_sha1(sha1)) {
+               obj = lookup_object(sha1);
                if (obj) {
                        obj->used = 1;
                        mark_object_reachable(obj);
                }
        }
-       obj = lookup_object(nsha1);
-       if (obj) {
-               obj->used = 1;
-               mark_object_reachable(obj);
-       }
+}
+
+static int fsck_handle_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
+               const char *email, unsigned long timestamp, int tz,
+               const char *message, void *cb_data)
+{
+       if (verbose)
+               fprintf(stderr, "Checking reflog %s->%s\n",
+                       sha1_to_hex(osha1), sha1_to_hex(nsha1));
+
+       fsck_handle_reflog_sha1(osha1);
+       fsck_handle_reflog_sha1(nsha1);
        return 0;
 }