]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/repack.c: use named flags for existing_packs
authorTaylor Blau <me@ttaylorr.com>
Fri, 20 May 2022 23:18:08 +0000 (19:18 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 26 May 2022 22:48:26 +0000 (15:48 -0700)
We use the `util` pointer for items in the `existing_packs` string list
to indicate which packs are going to be deleted. Since that has so far
been the only use of that `util` pointer, we just set it to 0 or 1.

But we're going to add an additional state to this field in the next
patch, so prepare for that by adding a #define for the first bit so we
can more expressively inspect the flags state.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/repack.c

index b85483a1484ea5ec804cb4d600581970e5edc1f6..36d1f0367112a51b8d42fb2348007ebb222d6921 100644 (file)
@@ -22,6 +22,8 @@
 #define LOOSEN_UNREACHABLE 2
 #define PACK_CRUFT 4
 
+#define DELETE_PACK 1
+
 static int pack_everything;
 static int delta_base_offset = 1;
 static int pack_kept_objects = -1;
@@ -564,7 +566,7 @@ static void midx_included_packs(struct string_list *include,
                }
        } else {
                for_each_string_list_item(item, existing_nonkept_packs) {
-                       if (item->util)
+                       if ((uintptr_t)item->util & DELETE_PACK)
                                continue;
                        string_list_insert(include, xstrfmt("%s.idx", item->string));
                }
@@ -1002,7 +1004,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
                         * was given) and that we will actually delete this pack
                         * (if `-d` was given).
                         */
-                       item->util = (void*)(intptr_t)!string_list_has_string(&names, sha1);
+                       if (!string_list_has_string(&names, sha1))
+                               item->util = (void*)(uintptr_t)((size_t)item->util | DELETE_PACK);
                }
        }
 
@@ -1026,7 +1029,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
        if (delete_redundant) {
                int opts = 0;
                for_each_string_list_item(item, &existing_nonkept_packs) {
-                       if (!item->util)
+                       if (!((uintptr_t)item->util & DELETE_PACK))
                                continue;
                        remove_redundant_pack(packdir, item->string);
                }