apply: remove newfd from struct apply_state

Similar to a previous patch, we do not need to use `newfd` to signal
that we have a lockfile to clean up. We can just unconditionally call
`rollback_lock_file`. If we do not hold the lock, it will be a no-op.

Where we check `newfd` to decide whether we need to take the lock, we
can instead use `is_lock_file_locked()`.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Martin Ågren 2017-10-05 22:32:10 +02:00 committed by Junio C Hamano
parent 6d058c8826
commit d13cd4c927
2 changed files with 7 additions and 13 deletions

11
apply.c
View File

@ -79,7 +79,6 @@ int init_apply_state(struct apply_state *state,
{ {
memset(state, 0, sizeof(*state)); memset(state, 0, sizeof(*state));
state->prefix = prefix; state->prefix = prefix;
state->newfd = -1;
state->apply = 1; state->apply = 1;
state->line_termination = '\n'; state->line_termination = '\n';
state->p_value = 1; state->p_value = 1;
@ -4705,13 +4704,13 @@ static int apply_patch(struct apply_state *state,
state->apply = 0; state->apply = 0;
state->update_index = state->check_index && state->apply; state->update_index = state->check_index && state->apply;
if (state->update_index && state->newfd < 0) { if (state->update_index && !is_lock_file_locked(&state->lock_file)) {
if (state->index_file) if (state->index_file)
state->newfd = hold_lock_file_for_update(&state->lock_file, hold_lock_file_for_update(&state->lock_file,
state->index_file, state->index_file,
LOCK_DIE_ON_ERROR); LOCK_DIE_ON_ERROR);
else else
state->newfd = hold_locked_index(&state->lock_file, LOCK_DIE_ON_ERROR); hold_locked_index(&state->lock_file, LOCK_DIE_ON_ERROR);
} }
if (state->check_index && read_apply_cache(state) < 0) { if (state->check_index && read_apply_cache(state) < 0) {
@ -4913,16 +4912,12 @@ int apply_all_patches(struct apply_state *state,
res = -128; res = -128;
goto end; goto end;
} }
state->newfd = -1;
} }
res = !!errs; res = !!errs;
end: end:
if (state->newfd >= 0) {
rollback_lock_file(&state->lock_file); rollback_lock_file(&state->lock_file);
state->newfd = -1;
}
if (state->apply_verbosity <= verbosity_silent) { if (state->apply_verbosity <= verbosity_silent) {
set_error_routine(state->saved_error_routine); set_error_routine(state->saved_error_routine);

View File

@ -36,9 +36,8 @@ enum apply_verbosity {
struct apply_state { struct apply_state {
const char *prefix; const char *prefix;
/* These are lock_file related */ /* Lock file */
struct lock_file lock_file; struct lock_file lock_file;
int newfd;
/* These control what gets looked at and modified */ /* These control what gets looked at and modified */
int apply; /* this is not a dry-run */ int apply; /* this is not a dry-run */