aboutsummaryrefslogtreecommitdiffstats
path: root/delta-islands.c
diff options
context:
space:
mode:
Diffstat (limited to 'delta-islands.c')
-rw-r--r--delta-islands.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/delta-islands.c b/delta-islands.c
index 90c0d6958f..afdec0a878 100644
--- a/delta-islands.c
+++ b/delta-islands.c
@@ -513,6 +513,22 @@ void propagate_island_marks(struct commit *commit)
}
}
+void free_island_marks(void)
+{
+ struct island_bitmap *bitmap;
+
+ if (island_marks) {
+ kh_foreach_value(island_marks, bitmap, {
+ if (!--bitmap->refcount)
+ free(bitmap);
+ });
+ kh_destroy_oid_map(island_marks);
+ }
+
+ /* detect use-after-free with a an address which is never valid: */
+ island_marks = (void *)-1;
+}
+
int compute_pack_layers(struct packing_data *to_pack)
{
uint32_t i;