diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2015-05-10 04:45:36 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-05-10 10:50:44 -0700 |
commit | 11ff5acf27a4a58626edbebe58b6242cc8bd3b07 (patch) | |
tree | da49380af00d5f09030ee8682e93425f125ec28d | |
parent | 9f2e7cbca3d72015db3887546b88fd64578c5ea4 (diff) | |
download | git-11ff5acf27a4a58626edbebe58b6242cc8bd3b07.tar.gz |
ref_transaction_commit(): remove the local flags variable
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>
-rw-r--r-- | refs.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -3802,16 +3802,15 @@ 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]; - int flags = update->flags; if (is_null_sha1(update->new_sha1)) - flags |= REF_DELETING; + update->flags |= REF_DELETING; update->lock = lock_ref_sha1_basic(update->refname, (update->have_old ? update->old_sha1 : NULL), NULL, - flags, + update->flags, &update->type); if (!update->lock) { ret = (errno == ENOTDIR) @@ -3827,7 +3826,7 @@ int ref_transaction_commit(struct ref_transaction *transaction, for (i = 0; i < n; i++) { struct ref_update *update = updates[i]; - if (!is_null_sha1(update->new_sha1)) { + if (!(update->flags & REF_DELETING)) { if (!update->lock->force_write && !hashcmp(update->lock->old_sha1, update->new_sha1)) { unlock_ref(update->lock); |