commit - 0dcca008649b39a379b76232af4afac403b9c483
commit + b6652669759c76df5848c093cf90ecfd90d280d2
blob - 414cf45f495487020f948b4b0c3e6a45ef730da9
blob + a35884552cf66d678f0db623e1dd92d976a7014e
--- lib/got_lib_worktree.h
+++ lib/got_lib_worktree.h
struct got_object_id *base_commit_id;
char *head_ref_name;
uuid_t uuid;
- int *pack_fds;
/*
* File descriptor for the lock file, open while a work tree is open.
blob - 5fc7f5e5959e0265169d48886312a51c11944edb
blob + b78a664347abec3aba1876dc39d14cbf3ac57cc4
--- lib/worktree_open.c
+++ lib/worktree_open.c
int version, fd = -1;
const char *errstr;
struct got_repository *repo = NULL;
+ int *pack_fds = NULL;
uint32_t uuid_status;
*worktree = NULL;
goto done;
}
- err = got_repo_pack_fds_open(&(*worktree)->pack_fds);
+ err = got_repo_pack_fds_open(&pack_fds);
if (err)
goto done;
- err = got_repo_open(&repo, (*worktree)->repo_path, NULL,
- (*worktree)->pack_fds);
+ err = got_repo_open(&repo, (*worktree)->repo_path, NULL, pack_fds);
if (err)
goto done;
const struct got_error *close_err = got_repo_close(repo);
if (err == NULL)
err = close_err;
+ }
+ if (pack_fds) {
+ const struct got_error *pack_err =
+ got_repo_pack_fds_close(pack_fds);
+ if (err == NULL)
+ err = pack_err;
}
free(path_got);
free(path_lock);
if (close(worktree->root_fd) == -1 && err == NULL)
err = got_error_from_errno2("close",
got_worktree_get_root_path(worktree));
- if (worktree->pack_fds) {
- const struct got_error *pack_err =
- got_repo_pack_fds_close(worktree->pack_fds);
- if (err == NULL)
- err = pack_err;
- }
free(worktree->repo_path);
free(worktree->path_prefix);
free(worktree->base_commit_id);