MCPcopy Index your code
hub / github.com/git/git / stack_segments_for_compaction

Function stack_segments_for_compaction

reftable/stack.c:1603–1622  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1601}
1602
1603static int stack_segments_for_compaction(struct reftable_stack *st,
1604 struct segment *seg)
1605{
1606 int version = (st->opts.hash_id == REFTABLE_HASH_SHA1) ? 1 : 2;
1607 int overhead = header_size(version) - 1;
1608 uint64_t *sizes;
1609
1610 REFTABLE_CALLOC_ARRAY(sizes, st->merged->tables_len);
1611 if (!sizes)
1612 return REFTABLE_OUT_OF_MEMORY_ERROR;
1613
1614 for (size_t i = 0; i < st->merged->tables_len; i++)
1615 sizes[i] = st->tables[i]->size - overhead;
1616
1617 *seg = suggest_compaction_segment(sizes, st->merged->tables_len,
1618 st->opts.auto_compaction_factor);
1619 reftable_free(sizes);
1620
1621 return 0;
1622}
1623
1624static int update_segment_if_compaction_required(struct reftable_stack *st,
1625 struct segment *seg,

Callers 1

Calls 3

header_sizeFunction · 0.85
reftable_freeFunction · 0.85

Tested by

no test coverage detected