summaryrefslogtreecommitdiff
path: root/src/index.c
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2011-06-01 18:34:21 +0200
committerVicent Marti <tanoku@gmail.com>2011-06-01 18:54:47 +0200
commitf7e59c4dcf46e0815ab0e7d435fd16755fdf616c (patch)
tree353d781e1efab8b73eb81a848da8bb276a001dd3 /src/index.c
parentef5ffed39a91e8e645ed77f52ec862d47b081e9c (diff)
downloadlibgit2-f7e59c4dcf46e0815ab0e7d435fd16755fdf616c.tar.gz
index: Change the memory management for repo indexes
The `git_repository_index` call now returns a brand new index that must be manually free'd.
Diffstat (limited to 'src/index.c')
-rw-r--r--src/index.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/index.c b/src/index.c
index 389780295..c1edd156d 100644
--- a/src/index.c
+++ b/src/index.c
@@ -168,13 +168,19 @@ static int index_initialize(git_index **index_out, git_repository *owner, const
return git_index_read(index);
}
-int git_index_open_bare(git_index **index_out, const char *index_path)
+int git_index_open(git_index **index_out, const char *index_path)
{
+ assert(index_out && index_path);
return index_initialize(index_out, NULL, index_path);
}
-int git_index_open_inrepo(git_index **index_out, git_repository *repo)
+/*
+ * Moved from `repository.c`
+ */
+int git_repository_index(git_index **index_out, git_repository *repo)
{
+ assert(index_out && repo);
+
if (repo->is_bare)
return git__throw(GIT_EBAREINDEX, "Failed to open index. Repository is bare");
@@ -183,7 +189,7 @@ int git_index_open_inrepo(git_index **index_out, git_repository *repo)
void git_index_free(git_index *index)
{
- if (index == NULL || index->repository != NULL)
+ if (index == NULL)
return;
git_index_clear(index);