Browse Source

ref_transaction_commit(): check for valid `transaction->state`

Move the check that `transaction->state` is valid from
`files_transaction_commit()` to `ref_transaction_commit()`, where
other future reference backends can benefit from it as well.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Michael Haggerty 8 years ago committed by Junio C Hamano
parent
commit
8d4240d3c8
  1. 12
      refs.c
  2. 3
      refs/files-backend.c

12
refs.c

@ -1694,6 +1694,18 @@ int ref_transaction_commit(struct ref_transaction *transaction, @@ -1694,6 +1694,18 @@ int ref_transaction_commit(struct ref_transaction *transaction,
{
struct ref_store *refs = transaction->ref_store;

switch (transaction->state) {
case REF_TRANSACTION_OPEN:
/* Good. */
break;
case REF_TRANSACTION_CLOSED:
die("BUG: prepare called on a closed reference transaction");
break;
default:
die("BUG: unexpected reference transaction state");
break;
}

if (getenv(GIT_QUARANTINE_ENVIRONMENT)) {
strbuf_addstr(err,
_("ref updates forbidden inside quarantine environment"));

3
refs/files-backend.c

@ -2874,9 +2874,6 @@ static int files_transaction_commit(struct ref_store *ref_store, @@ -2874,9 +2874,6 @@ static int files_transaction_commit(struct ref_store *ref_store,

assert(err);

if (transaction->state != REF_TRANSACTION_OPEN)
die("BUG: commit called for transaction that is not open");

if (!transaction->nr)
goto cleanup;


Loading…
Cancel
Save