diff options
author | Russell Belfer <rb@github.com> | 2014-05-12 10:24:46 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2014-05-12 10:24:46 -0700 |
commit | b1914c36511af468366482c4dc8974bd1c2995fc (patch) | |
tree | e91760de0d340b9702ca8d4070eed33eb66d0874 | |
parent | 7bcced44b7e5536ab1a92ad37735566e855531d0 (diff) | |
download | libgit2-b1914c36511af468366482c4dc8974bd1c2995fc.tar.gz |
Minor fixes for warnings and error propagation
-rw-r--r-- | include/git2/repository.h | 6 | ||||
-rw-r--r-- | src/config_file.c | 13 | ||||
-rw-r--r-- | src/diff_driver.c | 2 | ||||
-rw-r--r-- | src/repository.c | 5 |
4 files changed, 14 insertions, 12 deletions
diff --git a/include/git2/repository.h b/include/git2/repository.h index 0f7119b76..037cb3f96 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -418,7 +418,11 @@ GIT_EXTERN(int) git_repository_config(git_config **out, git_repository *repo); * Get a snapshot of the repository's configuration * * Convenience function to take a snapshot from the repository's - * configuration. + * configuration. The contents of this snapshot will not change, + * even if the underlying config files are modified. + * + * The configuration file must be freed once it's no longer + * being used by the user. * * @param out Pointer to store the loaded configuration * @param repo the repository diff --git a/src/config_file.c b/src/config_file.c index c09a032be..b00d0827d 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -247,18 +247,15 @@ static int refcounted_strmap_alloc(refcounted_strmap **out) int error; map = git__calloc(1, sizeof(refcounted_strmap)); - if (!map) { - giterr_set_oom(); - return -1; - } + GITERR_CHECK_ALLOC(map); git_atomic_set(&map->refcount, 1); - if ((error = git_strmap_alloc(&map->values)) < 0) { + + if ((error = git_strmap_alloc(&map->values)) < 0) git__free(map); - return error; - } + else + *out = map; - *out = map; return error; } diff --git a/src/diff_driver.c b/src/diff_driver.c index 28c0a6b17..fc1354f36 100644 --- a/src/diff_driver.c +++ b/src/diff_driver.c @@ -219,7 +219,7 @@ static int git_diff_driver_load( git_diff_driver *drv = NULL; size_t namelen = strlen(driver_name); khiter_t pos; - git_config *cfg, *repo_cfg; + git_config *cfg; git_buf name = GIT_BUF_INIT; const git_config_entry *ce; bool found_driver = false; diff --git a/src/repository.c b/src/repository.c index 87f6f7ab7..43a476016 100644 --- a/src/repository.c +++ b/src/repository.c @@ -627,10 +627,11 @@ int git_repository_config(git_config **out, git_repository *repo) int git_repository_config_snapshot(git_config **out, git_repository *repo) { + int error; git_config *weak; - if (git_repository_config__weakptr(&weak, repo) < 0) - return -1; + if ((error = git_repository_config__weakptr(&weak, repo)) < 0) + return error; return git_config_snapshot(out, weak); } |