Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
object.c: allow parse_object to handle arbitrary repositories
author
Stefan Beller
<sbeller@google.com>
Fri, 29 Jun 2018 01:22:19 +0000
(18:22 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Fri, 29 Jun 2018 17:43:40 +0000
(10:43 -0700)
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object.c
patch
|
blob
|
history
object.h
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
108ed1a
)
diff --git
a/object.c
b/object.c
index cd870fee22b20ca1a0e3d6d86748ffcaa30a79d7..b0faab85d40ae8a04cc219085d1b70531f179c82 100644
(file)
--- a/
object.c
+++ b/
object.c
@@
-245,28
+245,28
@@
struct object *parse_object_or_die(const struct object_id *oid,
die(_("unable to parse object: %s"), name ? name : oid_to_hex(oid));
}
die(_("unable to parse object: %s"), name ? name : oid_to_hex(oid));
}
-struct object *parse_object
_the_repository(
const struct object_id *oid)
+struct object *parse_object
(struct repository *r,
const struct object_id *oid)
{
unsigned long size;
enum object_type type;
int eaten;
{
unsigned long size;
enum object_type type;
int eaten;
- const struct object_id *repl = lookup_replace_object(
the_repository
, oid);
+ const struct object_id *repl = lookup_replace_object(
r
, oid);
void *buffer;
struct object *obj;
void *buffer;
struct object *obj;
- obj = lookup_object(
the_repository
, oid->hash);
+ obj = lookup_object(
r
, oid->hash);
if (obj && obj->parsed)
return obj;
if ((obj && obj->type == OBJ_BLOB && has_object_file(oid)) ||
(!obj && has_object_file(oid) &&
if (obj && obj->parsed)
return obj;
if ((obj && obj->type == OBJ_BLOB && has_object_file(oid)) ||
(!obj && has_object_file(oid) &&
- oid_object_info(
the_repository
, oid, NULL) == OBJ_BLOB)) {
+ oid_object_info(
r
, oid, NULL) == OBJ_BLOB)) {
if (check_object_signature(repl, NULL, 0, NULL) < 0) {
error("sha1 mismatch %s", oid_to_hex(oid));
return NULL;
}
if (check_object_signature(repl, NULL, 0, NULL) < 0) {
error("sha1 mismatch %s", oid_to_hex(oid));
return NULL;
}
- parse_blob_buffer(lookup_blob(
the_repository
, oid), NULL, 0);
- return lookup_object(
the_repository
, oid->hash);
+ parse_blob_buffer(lookup_blob(
r
, oid), NULL, 0);
+ return lookup_object(
r
, oid->hash);
}
buffer = read_object_file(oid, &type, &size);
}
buffer = read_object_file(oid, &type, &size);
@@
-277,7
+277,7
@@
struct object *parse_object_the_repository(const struct object_id *oid)
return NULL;
}
return NULL;
}
- obj = parse_object_buffer(
the_repository
, oid, type, size,
+ obj = parse_object_buffer(
r
, oid, type, size,
buffer, &eaten);
if (!eaten)
free(buffer);
buffer, &eaten);
if (!eaten)
free(buffer);
diff --git
a/object.h
b/object.h
index 38198bb73a14665a8c5b31d3ec26e05a0b8bd8f1..fa5ca9756786307e52004dfc3cb18d11a889dbb9 100644
(file)
--- a/
object.h
+++ b/
object.h
@@
-124,8
+124,7
@@
void *object_as_type(struct repository *r, struct object *obj, enum object_type
*
* Returns NULL if the object is missing or corrupt.
*/
*
* Returns NULL if the object is missing or corrupt.
*/
-#define parse_object(r, oid) parse_object_##r(oid)
-struct object *parse_object_the_repository(const struct object_id *oid);
+struct object *parse_object(struct repository *r, const struct object_id *oid);
/*
* Like parse_object, but will die() instead of returning NULL. If the
/*
* Like parse_object, but will die() instead of returning NULL. If the