summaryrefslogtreecommitdiff
path: root/delta-islands.c
diff options
context:
space:
mode:
authorChristian Couder <christian.couder@gmail.com>2018-08-16 06:13:13 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-08-16 17:56:44 (GMT)
commitfe0ac2fb7f8e87d37ef83dcee2d93901d58d8277 (patch)
tree37f990bd4446b96bdb41d09a618576ae89a20b30 /delta-islands.c
parent108f530385e969feab343b2b8acadeb7bb670009 (diff)
downloadgit-fe0ac2fb7f8e87d37ef83dcee2d93901d58d8277.zip
git-fe0ac2fb7f8e87d37ef83dcee2d93901d58d8277.tar.gz
git-fe0ac2fb7f8e87d37ef83dcee2d93901d58d8277.tar.bz2
pack-objects: move 'layer' into 'struct packing_data'
This reduces the size of 'struct object_entry' from 88 bytes to 80 and therefore makes packing objects more efficient. For example on a Linux repo with 12M objects, `git pack-objects --all` needs extra 96MB memory even if the layer feature is not used. Helped-by: Jeff King <peff@peff.net> Helped-by: Duy Nguyen <pclouds@gmail.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'delta-islands.c')
-rw-r--r--delta-islands.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/delta-islands.c b/delta-islands.c
index b0b9157..8e5018e 100644
--- a/delta-islands.c
+++ b/delta-islands.c
@@ -488,13 +488,13 @@ int compute_pack_layers(struct packing_data *to_pack)
struct object_entry *entry = &to_pack->objects[i];
khiter_t pos = kh_get_sha1(island_marks, entry->idx.oid.hash);
- entry->layer = 1;
+ oe_set_layer(to_pack, entry, 1);
if (pos < kh_end(island_marks)) {
struct island_bitmap *bitmap = kh_value(island_marks, pos);
if (island_bitmap_get(bitmap, island_counter_core))
- entry->layer = 0;
+ oe_set_layer(to_pack, entry, 0);
}
}