Skip to content

Commit

Permalink
ref_transaction_commit(): remove the local flags variable
Browse files Browse the repository at this point in the history
Instead, work directly with update->flags. This has the advantage that
the REF_DELETING bit, set in the first loop, can be read in the second
loop instead of having to be recomputed. Plus, it was potentially
confusing having both update->flags and flags, which sometimes had
different values.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed May 13, 2015
1 parent 61e51e0 commit cbf50f9
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -3763,16 +3763,16 @@ int ref_transaction_commit(struct ref_transaction *transaction,
/* Acquire all locks while verifying old values */
for (i = 0; i < n; i++) {
struct ref_update *update = updates[i];
unsigned int flags = update->flags;

if ((flags & REF_HAVE_NEW) && is_null_sha1(update->new_sha1))
flags |= REF_DELETING;
if ((update->flags & REF_HAVE_NEW) &&
is_null_sha1(update->new_sha1))
update->flags |= REF_DELETING;
update->lock = lock_ref_sha1_basic(
update->refname,
((update->flags & REF_HAVE_OLD) ?
update->old_sha1 : NULL),
NULL,
flags,
update->flags,
&update->type);
if (!update->lock) {
ret = (errno == ENOTDIR)
Expand All @@ -3787,9 +3787,9 @@ int ref_transaction_commit(struct ref_transaction *transaction,
/* Perform updates first so live commits remain referenced */
for (i = 0; i < n; i++) {
struct ref_update *update = updates[i];
int flags = update->flags;

if ((flags & REF_HAVE_NEW) && !is_null_sha1(update->new_sha1)) {
if ((update->flags & REF_HAVE_NEW)
&& !is_null_sha1(update->new_sha1)) {
int overwriting_symref = ((update->type & REF_ISSYMREF) &&
(update->flags & REF_NODEREF));

Expand Down Expand Up @@ -3822,15 +3822,15 @@ int ref_transaction_commit(struct ref_transaction *transaction,
/* Perform deletes now that updates are safely completed */
for (i = 0; i < n; i++) {
struct ref_update *update = updates[i];
int flags = update->flags;

if ((flags & REF_HAVE_NEW) && is_null_sha1(update->new_sha1)) {
if ((update->flags & REF_HAVE_NEW)
&& is_null_sha1(update->new_sha1)) {
if (delete_ref_loose(update->lock, update->type, err)) {
ret = TRANSACTION_GENERIC_ERROR;
goto cleanup;
}

if (!(flags & REF_ISPRUNING))
if (!(update->flags & REF_ISPRUNING))
string_list_append(&refs_to_delete,
update->lock->ref_name);
}
Expand Down

0 comments on commit cbf50f9

Please sign in to comment.