try_merge_strategy(): use a statically-allocated lock_file object
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>
This commit is contained in:
parent
1fef4b5041
commit
daccee387a
@ -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;
|
||||
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user