mirror of
https://github.com/libgit2/libgit2.git
synced 2026-01-25 02:56:17 +00:00
config: move the repository to the diskfile header
We pass this around and when creating a new iterator we need to read the repository pointer. Put it in a common place so we can reach it regardless of whether we got a full object or a snapshot.
This commit is contained in:
@@ -86,13 +86,13 @@ typedef struct {
|
||||
/* mutex to coordinate accessing the values */
|
||||
git_mutex values_mutex;
|
||||
refcounted_strmap *values;
|
||||
const git_repository *repo;
|
||||
} diskfile_header;
|
||||
|
||||
typedef struct {
|
||||
diskfile_header header;
|
||||
|
||||
git_config_level_t level;
|
||||
const git_repository *repo;
|
||||
|
||||
git_array_t(git_config_parser) readers;
|
||||
|
||||
@@ -271,7 +271,7 @@ static int config_open(git_config_backend *cfg, git_config_level_t level, const
|
||||
diskfile_backend *b = (diskfile_backend *)cfg;
|
||||
|
||||
b->level = level;
|
||||
b->repo = repo;
|
||||
b->header.repo = repo;
|
||||
|
||||
if ((res = refcounted_strmap_alloc(&b->header.values)) < 0)
|
||||
return res;
|
||||
@@ -343,7 +343,7 @@ static int config_refresh(git_config_backend *cfg)
|
||||
}
|
||||
git_array_clear(b->file.includes);
|
||||
|
||||
if ((error = config_read(values->values, b->repo, &b->file, b->level, 0)) < 0)
|
||||
if ((error = config_read(values->values, b->header.repo, &b->file, b->level, 0)) < 0)
|
||||
goto out;
|
||||
|
||||
if ((error = git_mutex_lock(&b->header.values_mutex)) < 0) {
|
||||
@@ -423,7 +423,7 @@ static int config_iterator_new(
|
||||
if ((error = config_snapshot(&snapshot, backend)) < 0)
|
||||
return error;
|
||||
|
||||
if ((error = snapshot->open(snapshot, b->level, b->repo)) < 0)
|
||||
if ((error = snapshot->open(snapshot, b->level, b->header.repo)) < 0)
|
||||
return error;
|
||||
|
||||
it = git__calloc(1, sizeof(git_config_file_iter));
|
||||
|
||||
Reference in New Issue
Block a user