Browse Source

refs.c: ref_transaction_commit should not free the transaction

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Michael Haggerty <mhagger@alum.mit.edu>
maint
Ronnie Sahlberg 11 years ago committed by Junio C Hamano
parent
commit
33f9fc5932
  1. 1
      builtin/update-ref.c
  2. 1
      refs.c
  3. 5
      refs.h

1
builtin/update-ref.c

@ -369,6 +369,7 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix) @@ -369,6 +369,7 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix)
update_refs_stdin();
ret = ref_transaction_commit(transaction, msg,
UPDATE_REFS_DIE_ON_ERR);
ref_transaction_free(transaction);
return ret;
}


1
refs.c

@ -3509,7 +3509,6 @@ cleanup: @@ -3509,7 +3509,6 @@ cleanup:
if (updates[i]->lock)
unlock_ref(updates[i]->lock);
free(delnames);
ref_transaction_free(transaction);
return ret;
}


5
refs.h

@ -219,8 +219,7 @@ enum action_on_err { @@ -219,8 +219,7 @@ enum action_on_err {

/*
* Begin a reference transaction. The reference transaction must
* eventually be commited using ref_transaction_commit() or freed by
* calling ref_transaction_free().
* be freed by calling ref_transaction_free().
*/
struct ref_transaction *ref_transaction_begin(void);

@ -268,7 +267,7 @@ void ref_transaction_delete(struct ref_transaction *transaction, @@ -268,7 +267,7 @@ void ref_transaction_delete(struct ref_transaction *transaction,
/*
* Commit all of the changes that have been queued in transaction, as
* atomically as possible. Return a nonzero value if there is a
* problem. The ref_transaction is freed by this function.
* problem.
*/
int ref_transaction_commit(struct ref_transaction *transaction,
const char *msg, enum action_on_err onerr);

Loading…
Cancel
Save