1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-08 06:16:15 +02:00

object: add repository argument to parse_object_buffer

Add a repository argument to allow the callers of parse_object_buffer
to be more specific about which repository to act on. This is a small
mechanical change; it doesn't change the implementation to handle
repositories other than the_repository yet.

As with the previous commits, use a macro to catch callers passing a
repository other than the_repository at compile time.

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-06-28 18:21:53 -07:00 committed by Junio C Hamano
parent 5abddd1eb7
commit 1ec5bfd24e
7 changed files with 18 additions and 9 deletions

View File

@ -244,7 +244,8 @@ static void export_blob(const struct object_id *oid)
die ("Could not read blob %s", oid_to_hex(oid));
if (check_object_signature(oid, buf, size, type_name(type)) < 0)
die("sha1 mismatch in blob %s", oid_to_hex(oid));
object = parse_object_buffer(oid, type, size, buf, &eaten);
object = parse_object_buffer(the_repository, oid, type,
size, buf, &eaten);
}
if (!object)

View File

@ -392,7 +392,8 @@ static int fsck_obj_buffer(const struct object_id *oid, enum object_type type,
* verify_packfile(), data_valid variable for details.
*/
struct object *obj;
obj = parse_object_buffer(oid, type, size, buffer, eaten);
obj = parse_object_buffer(the_repository, oid, type, size, buffer,
eaten);
if (!obj) {
errors_found |= ERROR_OBJECT;
return error("%s: object corrupt or missing", oid_to_hex(oid));
@ -525,7 +526,9 @@ static int fsck_loose(const struct object_id *oid, const char *path, void *data)
if (!contents && type != OBJ_BLOB)
BUG("read_loose_object streamed a non-blob");
obj = parse_object_buffer(oid, type, size, contents, &eaten);
obj = parse_object_buffer(the_repository, oid, type, size,
contents, &eaten);
if (!obj) {
errors_found |= ERROR_OBJECT;
error("%s: object could not be parsed: %s",

View File

@ -851,7 +851,8 @@ static void sha1_object(const void *data, struct object_entry *obj_entry,
* we do not need to free the memory here, as the
* buf is deleted by the caller.
*/
obj = parse_object_buffer(oid, type, size, buf,
obj = parse_object_buffer(the_repository, oid, type,
size, buf,
&eaten);
if (!obj)
die(_("invalid %s"), type_name(type));

View File

@ -265,7 +265,8 @@ static void write_object(unsigned nr, enum object_type type,
int eaten;
hash_object_file(buf, size, type_name(type), &obj_list[nr].oid);
added_object(nr, type, buf, size);
obj = parse_object_buffer(&obj_list[nr].oid, type, size, buf,
obj = parse_object_buffer(the_repository, &obj_list[nr].oid,
type, size, buf,
&eaten);
if (!obj)
die("invalid %s", type_name(type));

View File

@ -186,7 +186,7 @@ struct object *lookup_unknown_object(const unsigned char *sha1)
return obj;
}
struct object *parse_object_buffer(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p)
struct object *parse_object_buffer_the_repository(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p)
{
struct object *obj;
*eaten_p = 0;
@ -278,7 +278,8 @@ struct object *parse_object_the_repository(const struct object_id *oid)
return NULL;
}
obj = parse_object_buffer(oid, type, size, buffer, &eaten);
obj = parse_object_buffer(the_repository, oid, type, size,
buffer, &eaten);
if (!eaten)
free(buffer);
return obj;

View File

@ -135,7 +135,8 @@ struct object *parse_object_or_die(const struct object_id *oid, const char *name
* parsing it. eaten_p indicates if the object has a borrowed copy
* of buffer and the caller should not free() it.
*/
struct object *parse_object_buffer(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p);
#define parse_object_buffer(r, o, t, s, b, e) parse_object_buffer_##r(o, t, s, b, e)
struct object *parse_object_buffer_the_repository(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p);
/** Returns the object, with potentially excess memory allocated. **/
struct object *lookup_unknown_object(const unsigned char *sha1);

View File

@ -807,7 +807,8 @@ static void *get_obj(const struct object_id *oid, struct object **obj, unsigned
void *buf = read_object_file(oid, &type, sz);
if (buf)
*obj = parse_object_buffer(oid, type, *sz, buf, eaten);
*obj = parse_object_buffer(the_repository, oid, type, *sz,
buf, eaten);
else
*obj = NULL;
return buf;