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>
This commit is contained in:
Ronnie Sahlberg 2014-06-20 07:42:43 -07:00 committed by Junio C Hamano
parent 026bd1d3e2
commit 33f9fc5932
3 changed files with 3 additions and 4 deletions

View File

@ -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
View File

@ -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
View File

@ -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,
/*
* 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);