зеркало из https://github.com/microsoft/git.git
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:
Родитель
6d058c8826
Коммит
d13cd4c927
17
apply.c
17
apply.c
|
@ -79,7 +79,6 @@ int init_apply_state(struct apply_state *state,
|
|||
{
|
||||
memset(state, 0, sizeof(*state));
|
||||
state->prefix = prefix;
|
||||
state->newfd = -1;
|
||||
state->apply = 1;
|
||||
state->line_termination = '\n';
|
||||
state->p_value = 1;
|
||||
|
@ -4705,13 +4704,13 @@ static int apply_patch(struct apply_state *state,
|
|||
state->apply = 0;
|
||||
|
||||
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)
|
||||
state->newfd = hold_lock_file_for_update(&state->lock_file,
|
||||
state->index_file,
|
||||
LOCK_DIE_ON_ERROR);
|
||||
hold_lock_file_for_update(&state->lock_file,
|
||||
state->index_file,
|
||||
LOCK_DIE_ON_ERROR);
|
||||
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) {
|
||||
|
@ -4913,16 +4912,12 @@ int apply_all_patches(struct apply_state *state,
|
|||
res = -128;
|
||||
goto end;
|
||||
}
|
||||
state->newfd = -1;
|
||||
}
|
||||
|
||||
res = !!errs;
|
||||
|
||||
end:
|
||||
if (state->newfd >= 0) {
|
||||
rollback_lock_file(&state->lock_file);
|
||||
state->newfd = -1;
|
||||
}
|
||||
rollback_lock_file(&state->lock_file);
|
||||
|
||||
if (state->apply_verbosity <= verbosity_silent) {
|
||||
set_error_routine(state->saved_error_routine);
|
||||
|
|
3
apply.h
3
apply.h
|
@ -36,9 +36,8 @@ enum apply_verbosity {
|
|||
struct apply_state {
|
||||
const char *prefix;
|
||||
|
||||
/* These are lock_file related */
|
||||
/* Lock file */
|
||||
struct lock_file lock_file;
|
||||
int newfd;
|
||||
|
||||
/* These control what gets looked at and modified */
|
||||
int apply; /* this is not a dry-run */
|
||||
|
|
Загрузка…
Ссылка в новой задаче