MCPcopy Create free account
hub / github.com/git/git / reftable_table_refs_for_unindexed

Function reftable_table_refs_for_unindexed

reftable/table.c:669–714  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

667}
668
669static int reftable_table_refs_for_unindexed(struct reftable_table *t,
670 struct reftable_iterator *it,
671 uint8_t *oid)
672{
673 struct table_iter *ti;
674 struct filtering_ref_iterator *filter = NULL;
675 struct filtering_ref_iterator empty = FILTERING_REF_ITERATOR_INIT;
676 uint32_t oid_len = hash_size(t->hash_id);
677 int err;
678
679 REFTABLE_ALLOC_ARRAY(ti, 1);
680 if (!ti) {
681 err = REFTABLE_OUT_OF_MEMORY_ERROR;
682 goto out;
683 }
684
685 table_iter_init(ti, t);
686 err = table_iter_seek_start(ti, REFTABLE_BLOCK_TYPE_REF, 0);
687 if (err < 0)
688 goto out;
689
690 filter = reftable_malloc(sizeof(*filter));
691 if (!filter) {
692 err = REFTABLE_OUT_OF_MEMORY_ERROR;
693 goto out;
694 }
695 *filter = empty;
696
697 err = reftable_buf_add(&filter->oid, oid, oid_len);
698 if (err < 0)
699 goto out;
700
701 iterator_from_table_iter(&filter->it, ti);
702
703 iterator_from_filtering_ref_iterator(it, filter);
704
705 err = 0;
706
707out:
708 if (err < 0) {
709 if (ti)
710 table_iter_close(ti);
711 reftable_free(ti);
712 }
713 return err;
714}
715
716int reftable_table_refs_for(struct reftable_table *t,
717 struct reftable_iterator *it, uint8_t *oid)

Callers 1

reftable_table_refs_forFunction · 0.85

Calls 9

hash_sizeFunction · 0.85
table_iter_initFunction · 0.85
table_iter_seek_startFunction · 0.85
reftable_mallocFunction · 0.85
reftable_buf_addFunction · 0.85
iterator_from_table_iterFunction · 0.85
table_iter_closeFunction · 0.85
reftable_freeFunction · 0.85

Tested by

no test coverage detected