reachable.c: extract `obj_is_recent()`

When enumerating objects in order to add recent ones (i.e. those whose
mtime is strictly newer than the cutoff) as tips of a reachability
traversal, `add_recent_object()` discards objects which do not meet the
recency criteria.

The subsequent commit will make checking whether or not an object is
recent also consult the list of hooks in `pack.recentHook`. Isolate this
check in its own function to keep the additional complexity outside of
`add_recent_object()`.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Taylor Blau 2023-06-07 18:58:12 -04:00 committed by Junio C Hamano
parent 69c786637d
commit 01e9ca4a40
1 changed files with 7 additions and 1 deletions

View File

@ -69,6 +69,12 @@ struct recent_data {
int ignore_in_core_kept_packs;
};

static int obj_is_recent(const struct object_id *oid, timestamp_t mtime,
struct recent_data *data)
{
return mtime > data->timestamp;
}

static void add_recent_object(const struct object_id *oid,
struct packed_git *pack,
off_t offset,
@ -78,7 +84,7 @@ static void add_recent_object(const struct object_id *oid,
struct object *obj;
enum object_type type;

if (mtime <= data->timestamp)
if (!obj_is_recent(oid, mtime, data))
return;

/*