Commit c1524b2e by Carlos Martín Nieto

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.
parent c9d59c61
......@@ -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));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment