Commit 1d175074969ea47fdaca95cf9912fa2e74aa156e

Vicent Martí 2012-01-05T17:46:06

Merge pull request #528 from arrbee/valgrind-fixes-2 Valgrind fixes in smaller pieces

diff --git a/src/config.c b/src/config.c
index 1338ef3..a0ae4cb 100644
--- a/src/config.c
+++ b/src/config.c
@@ -120,7 +120,7 @@ int git_config_add_file(git_config *cfg, git_config_file *file, int priority)
 	assert(cfg && file);
 
 	if ((error = file->open(file)) < GIT_SUCCESS)
-		return git__rethrow(error, "Failed to open config file");
+		return git__throw(error, "Failed to open config file");
 
 	internal = git__malloc(sizeof(file_internal));
 	if (internal == NULL)
diff --git a/src/index.c b/src/index.c
index 9f9a08f..9e88012 100644
--- a/src/index.c
+++ b/src/index.c
@@ -510,6 +510,7 @@ int git_index_append2(git_index *index, const git_index_entry *source_entry)
 
 int git_index_remove(git_index *index, int position)
 {
+	int error;
 	git_index_entry *entry;
 
 	git_vector_sort(&index->entries);
@@ -517,7 +518,12 @@ int git_index_remove(git_index *index, int position)
 	if (entry != NULL)
 		git_tree_cache_invalidate_path(index->tree, entry->path);
 
-	return git_vector_remove(&index->entries, (unsigned int)position);
+	error = git_vector_remove(&index->entries, (unsigned int)position);
+
+	if (error == GIT_SUCCESS)
+		index_entry_free(entry);
+
+	return error;
 }
 
 int git_index_find(git_index *index, const char *path)
diff --git a/tests-clay/object/commit/commitstagedfile.c b/tests-clay/object/commit/commitstagedfile.c
index fd149bf..764013b 100644
--- a/tests-clay/object/commit/commitstagedfile.c
+++ b/tests-clay/object/commit/commitstagedfile.c
@@ -7,7 +7,6 @@ void test_object_commit_commitstagedfile__initialize(void)
 {
 	cl_fixture("treebuilder");
 	cl_git_pass(git_repository_init(&repo, "treebuilder/", 0));
-	cl_git_pass(git_repository_open(&repo, "treebuilder/.git"));
 	cl_assert(repo != NULL);
 }