summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2020-01-18 17:50:38 +0000
committerEdward Thomson <ethomson@edwardthomson.com>2020-01-24 15:12:56 -0600
commita3126a72d2ae034be9ab3cb06b25b314e7e9c639 (patch)
treef50a772de989a3f912c7d8de91afb64c9f662f73
parentcb43274a6b1eae490ab301f80ff13a69fe252610 (diff)
downloadlibgit2-a3126a72d2ae034be9ab3cb06b25b314e7e9c639.tar.gz
repository functions: return an int
Stop returning a void for functions, future-proofing them to allow them to fail.
-rw-r--r--include/git2/sys/repository.h17
-rw-r--r--src/repository.c16
2 files changed, 23 insertions, 10 deletions
diff --git a/include/git2/sys/repository.h b/include/git2/sys/repository.h
index ea2773fd8..892be6692 100644
--- a/include/git2/sys/repository.h
+++ b/include/git2/sys/repository.h
@@ -44,8 +44,11 @@ GIT_EXTERN(int) git_repository_new(git_repository **out);
* trying to aggressively cleanup the repo before its
* deallocation. `git_repository_free` already performs this operation
* before deallocating the repo.
+ *
+ * @param repo The repository to clean up
+ * @return 0 on success, or an error code
*/
-GIT_EXTERN(void) git_repository__cleanup(git_repository *repo);
+GIT_EXTERN(int) git_repository__cleanup(git_repository *repo);
/**
* Update the filesystem config settings for an open repository
@@ -78,8 +81,9 @@ GIT_EXTERN(int) git_repository_reinit_filesystem(
*
* @param repo A repository object
* @param config A Config object
+ * @return 0 on success, or an error code
*/
-GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *config);
+GIT_EXTERN(int) git_repository_set_config(git_repository *repo, git_config *config);
/**
* Set the Object Database for this repository
@@ -93,8 +97,9 @@ GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *con
*
* @param repo A repository object
* @param odb An ODB object
+ * @return 0 on success, or an error code
*/
-GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb);
+GIT_EXTERN(int) git_repository_set_odb(git_repository *repo, git_odb *odb);
/**
* Set the Reference Database Backend for this repository
@@ -108,8 +113,9 @@ GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb);
*
* @param repo A repository object
* @param refdb An refdb object
+ * @return 0 on success, or an error code
*/
-GIT_EXTERN(void) git_repository_set_refdb(git_repository *repo, git_refdb *refdb);
+GIT_EXTERN(int) git_repository_set_refdb(git_repository *repo, git_refdb *refdb);
/**
* Set the index file for this repository
@@ -123,8 +129,9 @@ GIT_EXTERN(void) git_repository_set_refdb(git_repository *repo, git_refdb *refdb
*
* @param repo A repository object
* @param index An index object
+ * @return 0 on success, or an error code
*/
-GIT_EXTERN(void) git_repository_set_index(git_repository *repo, git_index *index);
+GIT_EXTERN(int) git_repository_set_index(git_repository *repo, git_index *index);
/**
* Set a repository to be bare.
diff --git a/src/repository.c b/src/repository.c
index 03f68201b..2469e13e6 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -138,7 +138,7 @@ static void set_index(git_repository *repo, git_index *index)
}
}
-void git_repository__cleanup(git_repository *repo)
+int git_repository__cleanup(git_repository *repo)
{
assert(repo);
@@ -150,6 +150,8 @@ void git_repository__cleanup(git_repository *repo)
set_index(repo, NULL);
set_odb(repo, NULL);
set_refdb(repo, NULL);
+
+ return 0;
}
void git_repository_free(git_repository *repo)
@@ -1070,10 +1072,11 @@ int git_repository_config_snapshot(git_config **out, git_repository *repo)
return git_config_snapshot(out, weak);
}
-void git_repository_set_config(git_repository *repo, git_config *config)
+int git_repository_set_config(git_repository *repo, git_config *config)
{
assert(repo && config);
set_config(repo, config);
+ return 0;
}
int git_repository_odb__weakptr(git_odb **out, git_repository *repo)
@@ -1121,10 +1124,11 @@ int git_repository_odb(git_odb **out, git_repository *repo)
return 0;
}
-void git_repository_set_odb(git_repository *repo, git_odb *odb)
+int git_repository_set_odb(git_repository *repo, git_odb *odb)
{
assert(repo && odb);
set_odb(repo, odb);
+ return 0;
}
int git_repository_refdb__weakptr(git_refdb **out, git_repository *repo)
@@ -1161,10 +1165,11 @@ int git_repository_refdb(git_refdb **out, git_repository *repo)
return 0;
}
-void git_repository_set_refdb(git_repository *repo, git_refdb *refdb)
+int git_repository_set_refdb(git_repository *repo, git_refdb *refdb)
{
assert(repo && refdb);
set_refdb(repo, refdb);
+ return 0;
}
int git_repository_index__weakptr(git_index **out, git_repository *repo)
@@ -1210,10 +1215,11 @@ int git_repository_index(git_index **out, git_repository *repo)
return 0;
}
-void git_repository_set_index(git_repository *repo, git_index *index)
+int git_repository_set_index(git_repository *repo, git_index *index)
{
assert(repo);
set_index(repo, index);
+ return 0;
}
int git_repository_set_namespace(git_repository *repo, const char *namespace)