refs.c: change resolve_ref_unsafe reading argument to be a flags field
resolve_ref_unsafe takes a boolean argument for reading (a nonexistent ref resolves successfully for writing but not for reading). Change this to be a flags field instead, and pass the new constant RESOLVE_REF_READING when we want this behaviour. While at it, swap two of the arguments in the function to put output arguments at the end. As a nice side effect, this ensures that we can catch callers that were unaware of the new API so they can be audited. Give the wrapper functions resolve_refdup and read_ref_full the same treatment for consistency. Signed-off-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
aae383db8c
commit
7695d118e5
@ -567,7 +567,8 @@ static int read_remote_branches(const char *refname,
|
||||
strbuf_addf(&buf, "refs/remotes/%s/", rename->old);
|
||||
if (starts_with(refname, buf.buf)) {
|
||||
item = string_list_append(rename->remote_branches, xstrdup(refname));
|
||||
symref = resolve_ref_unsafe(refname, orig_sha1, 1, &flag);
|
||||
symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
|
||||
orig_sha1, &flag);
|
||||
if (flag & REF_ISSYMREF)
|
||||
item->util = xstrdup(symref);
|
||||
else
|
||||
@ -703,7 +704,7 @@ static int mv(int argc, const char **argv)
|
||||
int flag = 0;
|
||||
unsigned char sha1[20];
|
||||
|
||||
read_ref_full(item->string, sha1, 1, &flag);
|
||||
read_ref_full(item->string, RESOLVE_REF_READING, sha1, &flag);
|
||||
if (!(flag & REF_ISSYMREF))
|
||||
continue;
|
||||
if (delete_ref(item->string, NULL, REF_NODEREF))
|
||||
|
Reference in New Issue
Block a user