1454
struct delta_base_cache_key key;
1455
struct list_head lru;
1456
void *data;
1457
- unsigned long size;
1457
+ size_t size;
1458
enum object_type type;
1459
};
1460
1525
}
1526
1527
static void *cache_or_unpack_entry(struct repository *r, struct packed_git *p,
1528
- off_t base_offset, unsigned long *base_size,
1528
+ off_t base_offset, size_t *base_size,
1529
enum object_type *type)
1530
{
1531
struct delta_base_cache_entry *ent;
1558
}
1559
1560
static void add_delta_base_cache(struct packed_git *p, off_t base_offset,
1561
- void *base, unsigned long base_size,
1562
- unsigned long delta_base_cache_limit,
1561
+ void *base, size_t base_size,
1562
+ size_t delta_base_cache_limit,
1563
enum object_type type)
1564
{
1565
struct delta_base_cache_entry *ent;
1614
* a "real" type later if the caller is interested.
1615
*/
1616
if (oi->contentp) {
1617
- *oi->contentp = cache_or_unpack_entry(p->repo, p, obj_offset, oi->sizep,
1618
- &type);
1617
+ size_t size_st = 0;
1618
+ *oi->contentp = cache_or_unpack_entry(p->repo, p, obj_offset,
1619
+ &size_st, &type);
1620
if (!*oi->contentp)
1621
type = OBJ_BAD;
1622
+ else if (oi->sizep)
1623
+ *oi->sizep = cast_size_t_to_ulong(size_st);
1624
} else if (oi->sizep || oi->typep || oi->delta_base_oid) {
1625
type = unpack_object_header(p, &w_curs, &curpos, &size);
1626
}
1738
static void *unpack_compressed_entry(struct packed_git *p,
1739
struct pack_window **w_curs,
1740
off_t curpos,
1738
- unsigned long size)
1741
+ size_t size)
1742
{
1743
int st;
1744
git_zstream stream;
1793
struct unpack_entry_stack_ent {
1794
off_t obj_offset;
1795
off_t curpos;
1793
- unsigned long size;
1796
+ size_t size;
1797
};
1798
1799
void *unpack_entry(struct repository *r, struct packed_git *p, off_t obj_offset,
1797
- enum object_type *final_type, unsigned long *final_size)
1800
+ enum object_type *final_type, size_t *final_size)
1801
{
1802
struct pack_window *w_curs = NULL;
1803
off_t curpos = obj_offset;
1914
void *delta_data;
1915
void *base = data;
1916
void *external_base = NULL;
1914
- unsigned long delta_size, base_size = size;
1917
+ size_t delta_size, base_size = size;
1918
int i;
1919
off_t base_obj_offset = obj_offset;
1920
1931
struct object_id base_oid;
1932
if (!(offset_to_pack_pos(p, obj_offset, &pos))) {
1933
struct object_info oi = OBJECT_INFO_INIT;
1934
+ unsigned long bsz_ul = 0;
1935
1936
nth_packed_object_id(&base_oid, p,
1937
pack_pos_to_index(p, pos));
1942
mark_bad_packed_object(p, &base_oid);
1943
1944
oi.typep = &type;
1941
- oi.sizep = &base_size;
1945
+ oi.sizep = &bsz_ul;
1946
oi.contentp = &base;
1947
if (odb_read_object_info_extended(r->objects, &base_oid,
1948
&oi, 0) < 0)
1949
base = NULL;
1950
+ else
1951
+ base_size = bsz_ul;
1952
1953
external_base = base;
1954
}