Merge branch 'size-t/tree'

This commit is contained in:
Johannes Schindelin
2026-06-07 23:13:54 +02:00
5 changed files with 15 additions and 21 deletions

View File

@@ -1917,7 +1917,7 @@ struct pbase_tree_cache {
int ref;
int temporary;
void *tree_data;
unsigned long tree_size;
size_t tree_size;
};
static struct pbase_tree_cache *(pbase_tree_cache[256]);
@@ -1944,8 +1944,7 @@ static struct pbase_tree_cache *pbase_tree_get(const struct object_id *oid)
{
struct pbase_tree_cache *ent, *nent;
void *data;
unsigned long size;
size_t size_st = 0;
size_t size;
enum object_type type;
int neigh;
int my_ix = pbase_tree_cache_ix(oid);
@@ -1973,8 +1972,7 @@ static struct pbase_tree_cache *pbase_tree_get(const struct object_id *oid)
/* Did not find one. Either we got a bogus request or
* we need to read and perhaps cache.
*/
data = odb_read_object(the_repository->objects, oid, &type, &size_st);
size = cast_size_t_to_ulong(size_st);
data = odb_read_object(the_repository->objects, oid, &type, &size);
if (!data)
return NULL;
if (type != OBJ_TREE) {
@@ -2128,16 +2126,14 @@ static void add_preferred_base(struct object_id *oid)
{
struct pbase_tree *it;
void *data;
unsigned long size;
size_t size_st = 0;
size_t size;
struct object_id tree_oid;
if (window <= num_preferred_base++)
return;
data = odb_read_object_peeled(the_repository->objects, oid,
OBJ_TREE, &size_st, &tree_oid);
size = cast_size_t_to_ulong(size_st);
OBJ_TREE, &size, &tree_oid);
if (!data)
return;

View File

@@ -49,7 +49,7 @@ static int decode_tree_entry(struct tree_desc *desc, const char *buf, unsigned l
static int init_tree_desc_internal(struct tree_desc *desc,
const struct object_id *oid,
const void *buffer, unsigned long size,
const void *buffer, size_t size,
struct strbuf *err,
enum tree_desc_flags flags)
{
@@ -63,7 +63,7 @@ static int init_tree_desc_internal(struct tree_desc *desc,
}
void init_tree_desc(struct tree_desc *desc, const struct object_id *tree_oid,
const void *buffer, unsigned long size)
const void *buffer, size_t size)
{
struct strbuf err = STRBUF_INIT;
if (init_tree_desc_internal(desc, tree_oid, buffer, size, &err, 0))
@@ -72,7 +72,7 @@ void init_tree_desc(struct tree_desc *desc, const struct object_id *tree_oid,
}
int init_tree_desc_gently(struct tree_desc *desc, const struct object_id *oid,
const void *buffer, unsigned long size,
const void *buffer, size_t size,
enum tree_desc_flags flags)
{
struct strbuf err = STRBUF_INIT;
@@ -777,8 +777,7 @@ enum get_oid_result get_tree_entry_follow_symlinks(struct repository *r,
goto done;
} else if (S_ISLNK(*mode)) {
/* Follow a symlink */
unsigned long link_len;
size_t link_len_st = 0;
size_t link_len;
size_t len;
char *contents, *contents_start;
struct dir_state *parent;
@@ -798,8 +797,7 @@ enum get_oid_result get_tree_entry_follow_symlinks(struct repository *r,
contents = odb_read_object(r->objects,
&current_tree_oid, &type,
&link_len_st);
link_len = cast_size_t_to_ulong(link_len_st);
&link_len);
if (!contents)
goto done;

View File

@@ -85,10 +85,10 @@ int update_tree_entry_gently(struct tree_desc *);
* members of `struct tree`.
*/
void init_tree_desc(struct tree_desc *desc, const struct object_id *tree_oid,
const void *buf, unsigned long size);
const void *buf, size_t size);
int init_tree_desc_gently(struct tree_desc *desc, const struct object_id *oid,
const void *buf, unsigned long size,
const void *buf, size_t size,
enum tree_desc_flags flags);
/*

2
tree.c
View File

@@ -172,7 +172,7 @@ struct tree *lookup_tree(struct repository *r, const struct object_id *oid)
return object_as_type(obj, OBJ_TREE, 0);
}
int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size)
int parse_tree_buffer(struct tree *item, void *buffer, size_t size)
{
if (item->object.parsed)
return 0;

4
tree.h
View File

@@ -10,14 +10,14 @@ struct strbuf;
struct tree {
struct object object;
void *buffer;
unsigned long size;
size_t size;
};
extern const char *tree_type;
struct tree *lookup_tree(struct repository *r, const struct object_id *oid);
int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size);
int parse_tree_buffer(struct tree *item, void *buffer, size_t size);
#define parse_tree_gently(t, q) repo_parse_tree_gently(the_repository, t, q)
int repo_parse_tree_gently(struct repository *r, struct tree *item,