From 33f9fc593247322ddea5515f548a06cf34d12c2f Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Fri, 20 Jun 2014 07:42:43 -0700 Subject: refs.c: ref_transaction_commit should not free the transaction Reviewed-by: Jonathan Nieder Signed-off-by: Ronnie Sahlberg Signed-off-by: Junio C Hamano Acked-by: Michael Haggerty diff --git a/builtin/update-ref.c b/builtin/update-ref.c index 405267f..1fd7a89 100644 --- a/builtin/update-ref.c +++ b/builtin/update-ref.c @@ -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; } diff --git a/refs.c b/refs.c index 6d841a0..d9cac6d 100644 --- a/refs.c +++ b/refs.c @@ -3509,7 +3509,6 @@ cleanup: if (updates[i]->lock) unlock_ref(updates[i]->lock); free(delnames); - ref_transaction_free(transaction); return ret; } diff --git a/refs.h b/refs.h index cfd1832..7d946f6 100644 --- a/refs.h +++ b/refs.h @@ -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); -- cgit v0.10.2-6-g49f6