mirror of
https://github.com/git/git.git
synced 2024-05-18 03:06:17 +02:00
entry.c: use the right index instead of the_index
checkout-index.c needs update because if checkout->istate is NULL, ie_match_stat() will crash. Previously this is ie_match_stat(&the_index, ..) so it will not crash, but it is not technically correct either. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
68f08b4b23
commit
74cfc0ee1d
|
@ -190,6 +190,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
|
||||||
|
|
||||||
argc = parse_options(argc, argv, prefix, builtin_checkout_index_options,
|
argc = parse_options(argc, argv, prefix, builtin_checkout_index_options,
|
||||||
builtin_checkout_index_usage, 0);
|
builtin_checkout_index_usage, 0);
|
||||||
|
state.istate = &the_index;
|
||||||
state.force = force;
|
state.force = force;
|
||||||
state.quiet = quiet;
|
state.quiet = quiet;
|
||||||
state.not_new = not_new;
|
state.not_new = not_new;
|
||||||
|
|
9
entry.c
9
entry.c
|
@ -266,7 +266,7 @@ static int write_entry(struct cache_entry *ce,
|
||||||
const struct submodule *sub;
|
const struct submodule *sub;
|
||||||
|
|
||||||
if (ce_mode_s_ifmt == S_IFREG) {
|
if (ce_mode_s_ifmt == S_IFREG) {
|
||||||
struct stream_filter *filter = get_stream_filter(&the_index, ce->name,
|
struct stream_filter *filter = get_stream_filter(state->istate, ce->name,
|
||||||
&ce->oid);
|
&ce->oid);
|
||||||
if (filter &&
|
if (filter &&
|
||||||
!streaming_write_entry(ce, path, filter,
|
!streaming_write_entry(ce, path, filter,
|
||||||
|
@ -314,14 +314,14 @@ static int write_entry(struct cache_entry *ce,
|
||||||
* Convert from git internal format to working tree format
|
* Convert from git internal format to working tree format
|
||||||
*/
|
*/
|
||||||
if (dco && dco->state != CE_NO_DELAY) {
|
if (dco && dco->state != CE_NO_DELAY) {
|
||||||
ret = async_convert_to_working_tree(&the_index, ce->name, new_blob,
|
ret = async_convert_to_working_tree(state->istate, ce->name, new_blob,
|
||||||
size, &buf, dco);
|
size, &buf, dco);
|
||||||
if (ret && string_list_has_string(&dco->paths, ce->name)) {
|
if (ret && string_list_has_string(&dco->paths, ce->name)) {
|
||||||
free(new_blob);
|
free(new_blob);
|
||||||
goto delayed;
|
goto delayed;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
ret = convert_to_working_tree(&the_index, ce->name, new_blob, size, &buf);
|
ret = convert_to_working_tree(state->istate, ce->name, new_blob, size, &buf);
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
free(new_blob);
|
free(new_blob);
|
||||||
|
@ -422,7 +422,8 @@ int checkout_entry(struct cache_entry *ce,
|
||||||
|
|
||||||
if (!check_path(path.buf, path.len, &st, state->base_dir_len)) {
|
if (!check_path(path.buf, path.len, &st, state->base_dir_len)) {
|
||||||
const struct submodule *sub;
|
const struct submodule *sub;
|
||||||
unsigned changed = ce_match_stat(ce, &st, CE_MATCH_IGNORE_VALID|CE_MATCH_IGNORE_SKIP_WORKTREE);
|
unsigned changed = ie_match_stat(state->istate, ce, &st,
|
||||||
|
CE_MATCH_IGNORE_VALID | CE_MATCH_IGNORE_SKIP_WORKTREE);
|
||||||
/*
|
/*
|
||||||
* Needs to be checked before !changed returns early,
|
* Needs to be checked before !changed returns early,
|
||||||
* as the possibly empty directory was not changed
|
* as the possibly empty directory was not changed
|
||||||
|
|
Loading…
Reference in New Issue