object-file: inline check_and_freshen() functions
The `check_and_freshen()` functions are only used by a single caller now. Inline them into `freshen_loose_object()`. While at it, rename `check_and_freshen_odb()` to `_source()` to reflect that it works on a single object source instead of on the whole database. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
931e8c9f52
commit
f6638bf55d
@@ -89,42 +89,19 @@ int check_and_freshen_file(const char *fn, int freshen)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_and_freshen_odb(struct odb_source *source,
|
static int check_and_freshen_source(struct odb_source *source,
|
||||||
const struct object_id *oid,
|
const struct object_id *oid,
|
||||||
int freshen)
|
int freshen)
|
||||||
{
|
{
|
||||||
static struct strbuf path = STRBUF_INIT;
|
static struct strbuf path = STRBUF_INIT;
|
||||||
odb_loose_path(source, &path, oid);
|
odb_loose_path(source, &path, oid);
|
||||||
return check_and_freshen_file(path.buf, freshen);
|
return check_and_freshen_file(path.buf, freshen);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_and_freshen_local(const struct object_id *oid, int freshen)
|
|
||||||
{
|
|
||||||
return check_and_freshen_odb(the_repository->objects->sources, oid, freshen);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int check_and_freshen_nonlocal(const struct object_id *oid, int freshen)
|
|
||||||
{
|
|
||||||
struct odb_source *source;
|
|
||||||
|
|
||||||
odb_prepare_alternates(the_repository->objects);
|
|
||||||
for (source = the_repository->objects->sources->next; source; source = source->next) {
|
|
||||||
if (check_and_freshen_odb(source, oid, freshen))
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int check_and_freshen(const struct object_id *oid, int freshen)
|
|
||||||
{
|
|
||||||
return check_and_freshen_local(oid, freshen) ||
|
|
||||||
check_and_freshen_nonlocal(oid, freshen);
|
|
||||||
}
|
|
||||||
|
|
||||||
int has_loose_object(struct odb_source *source,
|
int has_loose_object(struct odb_source *source,
|
||||||
const struct object_id *oid)
|
const struct object_id *oid)
|
||||||
{
|
{
|
||||||
return check_and_freshen_odb(source, oid, 0);
|
return check_and_freshen_source(source, oid, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int format_object_header(char *str, size_t size, enum object_type type,
|
int format_object_header(char *str, size_t size, enum object_type type,
|
||||||
@@ -918,7 +895,15 @@ static int write_loose_object(const struct object_id *oid, char *hdr,
|
|||||||
|
|
||||||
static int freshen_loose_object(const struct object_id *oid)
|
static int freshen_loose_object(const struct object_id *oid)
|
||||||
{
|
{
|
||||||
return check_and_freshen(oid, 1);
|
struct odb_source *source;
|
||||||
|
|
||||||
|
odb_prepare_alternates(the_repository->objects);
|
||||||
|
for (source = the_repository->objects->sources; source; source = source->next) {
|
||||||
|
if (check_and_freshen_source(source, oid, 1))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int freshen_packed_object(const struct object_id *oid)
|
static int freshen_packed_object(const struct object_id *oid)
|
||||||
|
|||||||
Reference in New Issue
Block a user