diff options
Diffstat (limited to 'repository.c')
-rw-r--r-- | repository.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/repository.c b/repository.c index a5805fa33b..937fa974b3 100644 --- a/repository.c +++ b/repository.c @@ -28,6 +28,8 @@ void initialize_the_repository(void) the_repo.remote_state = remote_state_new(); the_repo.parsed_objects = parsed_object_pool_new(); + index_state_init(&the_index, the_repository); + repo_set_hash_algo(&the_repo, GIT_HASH_SHA1); } @@ -302,16 +304,13 @@ int repo_read_index(struct repository *repo) { int res; + /* Complete the double-reference */ if (!repo->index) { ALLOC_ARRAY(repo->index, 1); - index_state_init(repo->index); - } - - /* Complete the double-reference */ - if (!repo->index->repo) - repo->index->repo = repo; - else if (repo->index->repo != repo) + index_state_init(repo->index, repo); + } else if (repo->index->repo != repo) { BUG("repo's index should point back at itself"); + } res = read_index_from(repo->index, repo->index_file, repo->gitdir); |