Skip to content

Commit

Permalink
try_merge_strategy(): use a statically-allocated lock_file object
Browse files Browse the repository at this point in the history
Even the one lockfile object needn't be allocated each time the
function is called.  Instead, define one statically-allocated
lock_file object and reuse it for every call.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed Oct 1, 2014
1 parent 1fef4b5 commit daccee3
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions builtin/merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -656,14 +656,14 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
struct commit_list *remoteheads,
struct commit *head, const char *head_arg)
{
struct lock_file *lock = xcalloc(1, sizeof(struct lock_file));
static struct lock_file lock;

hold_locked_index(lock, 1);
hold_locked_index(&lock, 1);
refresh_cache(REFRESH_QUIET);
if (active_cache_changed &&
write_locked_index(&the_index, lock, COMMIT_LOCK))
write_locked_index(&the_index, &lock, COMMIT_LOCK))
return error(_("Unable to write index."));
rollback_lock_file(lock);
rollback_lock_file(&lock);

if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree")) {
int clean, x;
Expand Down Expand Up @@ -695,13 +695,13 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
for (j = common; j; j = j->next)
commit_list_insert(j->item, &reversed);

hold_locked_index(lock, 1);
hold_locked_index(&lock, 1);
clean = merge_recursive(&o, head,
remoteheads->item, reversed, &result);
if (active_cache_changed &&
write_locked_index(&the_index, lock, COMMIT_LOCK))
write_locked_index(&the_index, &lock, COMMIT_LOCK))
die (_("unable to write %s"), get_index_file());
rollback_lock_file(lock);
rollback_lock_file(&lock);
return clean ? 0 : 1;
} else {
return try_merge_command(strategy, xopts_nr, xopts,
Expand Down

0 comments on commit daccee3

Please sign in to comment.