Skip to content

Commit

Permalink
refs: convert read_ref_at to struct object_id
Browse files Browse the repository at this point in the history
Convert the callers and internals, including struct read_ref_at_cb, of
read_ref_at to use struct object_id.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
bk2204 authored and gitster committed Oct 16, 2017
1 parent b420d90 commit 8eb36d9
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 21 deletions.
4 changes: 2 additions & 2 deletions builtin/show-branch.c
Original file line number Diff line number Diff line change
Expand Up @@ -731,7 +731,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
/* Ah, that is a date spec... */
timestamp_t at;
at = approxidate(reflog_base);
read_ref_at(ref, flags, at, -1, oid.hash, NULL,
read_ref_at(ref, flags, at, -1, &oid, NULL,
NULL, NULL, &base);
}
}
Expand All @@ -743,7 +743,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
timestamp_t timestamp;
int tz;

if (read_ref_at(ref, flags, 0, base+i, oid.hash, &logmsg,
if (read_ref_at(ref, flags, 0, base + i, &oid, &logmsg,
&timestamp, &tz, NULL)) {
reflog = i;
break;
Expand Down
34 changes: 17 additions & 17 deletions refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -738,11 +738,11 @@ struct read_ref_at_cb {
timestamp_t at_time;
int cnt;
int reccnt;
unsigned char *sha1;
struct object_id *oid;
int found_it;

unsigned char osha1[20];
unsigned char nsha1[20];
struct object_id ooid;
struct object_id noid;
int tz;
timestamp_t date;
char **msg;
Expand Down Expand Up @@ -774,25 +774,25 @@ static int read_ref_at_ent(struct object_id *ooid, struct object_id *noid,
* we have not yet updated cb->[n|o]sha1 so they still
* hold the values for the previous record.
*/
if (!is_null_sha1(cb->osha1)) {
hashcpy(cb->sha1, noid->hash);
if (hashcmp(cb->osha1, noid->hash))
if (!is_null_oid(&cb->ooid)) {
oidcpy(cb->oid, noid);
if (oidcmp(&cb->ooid, noid))
warning("Log for ref %s has gap after %s.",
cb->refname, show_date(cb->date, cb->tz, DATE_MODE(RFC2822)));
}
else if (cb->date == cb->at_time)
hashcpy(cb->sha1, noid->hash);
else if (hashcmp(noid->hash, cb->sha1))
oidcpy(cb->oid, noid);
else if (oidcmp(noid, cb->oid))
warning("Log for ref %s unexpectedly ended on %s.",
cb->refname, show_date(cb->date, cb->tz,
DATE_MODE(RFC2822)));
hashcpy(cb->osha1, ooid->hash);
hashcpy(cb->nsha1, noid->hash);
oidcpy(&cb->ooid, ooid);
oidcpy(&cb->noid, noid);
cb->found_it = 1;
return 1;
}
hashcpy(cb->osha1, ooid->hash);
hashcpy(cb->nsha1, noid->hash);
oidcpy(&cb->ooid, ooid);
oidcpy(&cb->noid, noid);
if (cb->cnt > 0)
cb->cnt--;
return 0;
Expand All @@ -812,15 +812,15 @@ static int read_ref_at_ent_oldest(struct object_id *ooid, struct object_id *noid
*cb->cutoff_tz = tz;
if (cb->cutoff_cnt)
*cb->cutoff_cnt = cb->reccnt;
hashcpy(cb->sha1, ooid->hash);
if (is_null_sha1(cb->sha1))
hashcpy(cb->sha1, noid->hash);
oidcpy(cb->oid, ooid);
if (is_null_oid(cb->oid))
oidcpy(cb->oid, noid);
/* We just want the first entry */
return 1;
}

int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, int cnt,
unsigned char *sha1, char **msg,
struct object_id *oid, char **msg,
timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt)
{
struct read_ref_at_cb cb;
Expand All @@ -833,7 +833,7 @@ int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, in
cb.cutoff_time = cutoff_time;
cb.cutoff_tz = cutoff_tz;
cb.cutoff_cnt = cutoff_cnt;
cb.sha1 = sha1;
cb.oid = oid;

for_each_reflog_ent_reverse(refname, read_ref_at_ent, &cb);

Expand Down
2 changes: 1 addition & 1 deletion refs.h
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ int safe_create_reflog(const char *refname, int force_create, struct strbuf *err
/** Reads log for the value of ref during at_time. **/
int read_ref_at(const char *refname, unsigned int flags,
timestamp_t at_time, int cnt,
unsigned char *sha1, char **msg,
struct object_id *oid, char **msg,
timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt);

/** Check if a particular reflog exists */
Expand Down
2 changes: 1 addition & 1 deletion sha1_name.c
Original file line number Diff line number Diff line change
Expand Up @@ -697,7 +697,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid,
return -1;
}
}
if (read_ref_at(real_ref, flags, at_time, nth, oid->hash, NULL,
if (read_ref_at(real_ref, flags, at_time, nth, oid, NULL,
&co_time, &co_tz, &co_cnt)) {
if (!len) {
if (starts_with(real_ref, "refs/heads/")) {
Expand Down

0 comments on commit 8eb36d9

Please sign in to comment.