Skip to content

Commit

Permalink
entry.c: use the right index instead of the_index
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
pclouds authored and gitster committed Aug 13, 2018
1 parent 68f08b4 commit 74cfc0e
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
1 change: 1 addition & 0 deletions builtin/checkout-index.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
builtin_checkout_index_usage, 0);
state.istate = &the_index;
state.force = force;
state.quiet = quiet;
state.not_new = not_new;
Expand Down
9 changes: 5 additions & 4 deletions entry.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ static int write_entry(struct cache_entry *ce,
const struct submodule *sub;

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);
if (filter &&
!streaming_write_entry(ce, path, filter,
Expand Down Expand Up @@ -314,14 +314,14 @@ static int write_entry(struct cache_entry *ce,
* Convert from git internal format to working tree format
*/
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);
if (ret && string_list_has_string(&dco->paths, ce->name)) {
free(new_blob);
goto delayed;
}
} 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) {
free(new_blob);
Expand Down Expand Up @@ -422,7 +422,8 @@ int checkout_entry(struct cache_entry *ce,

if (!check_path(path.buf, path.len, &st, state->base_dir_len)) {
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,
* as the possibly empty directory was not changed
Expand Down

0 comments on commit 74cfc0e

Please sign in to comment.