summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2014-05-12 10:24:46 -0700
committerRussell Belfer <rb@github.com>2014-05-12 10:24:46 -0700
commitb1914c36511af468366482c4dc8974bd1c2995fc (patch)
treee91760de0d340b9702ca8d4070eed33eb66d0874
parent7bcced44b7e5536ab1a92ad37735566e855531d0 (diff)
downloadlibgit2-b1914c36511af468366482c4dc8974bd1c2995fc.tar.gz
Minor fixes for warnings and error propagation
-rw-r--r--include/git2/repository.h6
-rw-r--r--src/config_file.c13
-rw-r--r--src/diff_driver.c2
-rw-r--r--src/repository.c5
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);
}