object: allow create_object to handle arbitrary repositories

Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Stefan Beller 2018-05-08 12:37:35 -07:00 коммит произвёл Junio C Hamano
Родитель 346a817a72
Коммит 341e45e46b
2 изменённых файлов: 7 добавлений и 8 удалений

Просмотреть файл

@ -139,7 +139,7 @@ static void grow_object_hash(struct repository *r)
r->parsed_objects->obj_hash_size = new_hash_size;
}
void *create_object_the_repository(const unsigned char *sha1, void *o)
void *create_object(struct repository *r, const unsigned char *sha1, void *o)
{
struct object *obj = o;
@ -147,12 +147,12 @@ void *create_object_the_repository(const unsigned char *sha1, void *o)
obj->flags = 0;
hashcpy(obj->oid.hash, sha1);
if (the_repository->parsed_objects->obj_hash_size - 1 <= the_repository->parsed_objects->nr_objs * 2)
grow_object_hash(the_repository);
if (r->parsed_objects->obj_hash_size - 1 <= r->parsed_objects->nr_objs * 2)
grow_object_hash(r);
insert_obj_hash(obj, the_repository->parsed_objects->obj_hash,
the_repository->parsed_objects->obj_hash_size);
the_repository->parsed_objects->nr_objs++;
insert_obj_hash(obj, r->parsed_objects->obj_hash,
r->parsed_objects->obj_hash_size);
r->parsed_objects->nr_objs++;
return obj;
}

Просмотреть файл

@ -93,8 +93,7 @@ extern struct object *get_indexed_object(unsigned int);
*/
struct object *lookup_object(const unsigned char *sha1);
#define create_object(r, s, o) create_object_##r(s, o)
extern void *create_object_the_repository(const unsigned char *sha1, void *obj);
extern void *create_object(struct repository *r, const unsigned char *sha1, void *obj);
void *object_as_type(struct object *obj, enum object_type type, int quiet);