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

Function get_size_by_pos

pack-bitmap.c:1856–1895  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1854}
1855
1856static unsigned long get_size_by_pos(struct bitmap_index *bitmap_git,
1857 uint32_t pos)
1858{
1859 size_t size;
1860 struct object_info oi = OBJECT_INFO_INIT;
1861
1862 oi.sizep = &size;
1863
1864 if (pos < bitmap_num_objects_total(bitmap_git)) {
1865 struct packed_git *pack;
1866 off_t ofs;
1867
1868 if (bitmap_is_midx(bitmap_git)) {
1869 uint32_t midx_pos = pack_pos_to_midx(bitmap_git->midx, pos);
1870 uint32_t pack_id = nth_midxed_pack_int_id(bitmap_git->midx, midx_pos);
1871
1872 pack = nth_midxed_pack(bitmap_git->midx, pack_id);
1873 ofs = nth_midxed_offset(bitmap_git->midx, midx_pos);
1874 } else {
1875 pack = bitmap_git->pack;
1876 ofs = pack_pos_to_offset(pack, pos);
1877 }
1878
1879 if (packed_object_info(pack, ofs, &oi) < 0) {
1880 struct object_id oid;
1881 nth_bitmap_object_oid(bitmap_git, &oid,
1882 pack_pos_to_index(pack, pos));
1883 die(_("unable to get size of %s"), oid_to_hex(&oid));
1884 }
1885 } else {
1886 size_t eindex_pos = pos - bitmap_num_objects_total(bitmap_git);
1887 struct eindex *eindex = &bitmap_git->ext_index;
1888 struct object *obj = eindex->objects[eindex_pos];
1889 if (odb_read_object_info_extended(bitmap_repo(bitmap_git)->objects, &obj->oid,
1890 &oi, 0) < 0)
1891 die(_("unable to get size of %s"), oid_to_hex(&obj->oid));
1892 }
1893
1894 return cast_size_t_to_ulong(size);
1895}
1896
1897static void filter_bitmap_blob_limit(struct bitmap_index *bitmap_git,
1898 struct object_list *tip_objects,

Callers 1

filter_bitmap_blob_limitFunction · 0.85

Calls 15

bitmap_num_objects_totalFunction · 0.85
bitmap_is_midxFunction · 0.85
pack_pos_to_midxFunction · 0.85
nth_midxed_pack_int_idFunction · 0.85
nth_midxed_packFunction · 0.85
nth_midxed_offsetFunction · 0.85
pack_pos_to_offsetFunction · 0.85
packed_object_infoFunction · 0.85
nth_bitmap_object_oidFunction · 0.85
pack_pos_to_indexFunction · 0.85
oid_to_hexFunction · 0.85

Tested by

no test coverage detected