Commit dd498274 by Vicent Martí

Merge pull request #319 from carlosmn/valgrind

Fix more memory leaks
parents 5903aa2b 75c2002f
...@@ -267,6 +267,7 @@ int git_status_foreach(git_repository *repo, int (*callback)(const char *, unsig ...@@ -267,6 +267,7 @@ int git_status_foreach(git_repository *repo, int (*callback)(const char *, unsig
git_oid_cpy(&e->index_oid, &index_entry->oid); git_oid_cpy(&e->index_oid, &index_entry->oid);
e->mtime = index_entry->mtime; e->mtime = index_entry->mtime;
} }
git_index_free(index);
git_reference_lookup(&head_ref, repo, GIT_HEAD_FILE); git_reference_lookup(&head_ref, repo, GIT_HEAD_FILE);
git_reference_resolve(&resolved_head_ref, head_ref); git_reference_resolve(&resolved_head_ref, head_ref);
...@@ -276,6 +277,7 @@ int git_status_foreach(git_repository *repo, int (*callback)(const char *, unsig ...@@ -276,6 +277,7 @@ int git_status_foreach(git_repository *repo, int (*callback)(const char *, unsig
// recurse through tree entries // recurse through tree entries
git_commit_tree(&tree, head_commit); git_commit_tree(&tree, head_commit);
recurse_tree_entries(tree, &entries, ""); recurse_tree_entries(tree, &entries, "");
git_commit_close(head_commit);
dirent_st.workdir_path_len = strlen(repo->path_workdir); dirent_st.workdir_path_len = strlen(repo->path_workdir);
dirent_st.entry.vector = &entries; dirent_st.entry.vector = &entries;
...@@ -330,6 +332,7 @@ int git_status_file(unsigned int *status_flags, git_repository *repo, const char ...@@ -330,6 +332,7 @@ int git_status_file(unsigned int *status_flags, git_repository *repo, const char
git_oid_cpy(&e->index_oid, &index_entry->oid); git_oid_cpy(&e->index_oid, &index_entry->oid);
e->mtime = index_entry->mtime; e->mtime = index_entry->mtime;
} }
git_index_free(index);
// Find file in HEAD // Find file in HEAD
git_reference_lookup(&head_ref, repo, GIT_HEAD_FILE); git_reference_lookup(&head_ref, repo, GIT_HEAD_FILE);
...@@ -339,6 +342,7 @@ int git_status_file(unsigned int *status_flags, git_repository *repo, const char ...@@ -339,6 +342,7 @@ int git_status_file(unsigned int *status_flags, git_repository *repo, const char
git_commit_tree(&tree, head_commit); git_commit_tree(&tree, head_commit);
recurse_tree_entry(tree, e, path); recurse_tree_entry(tree, e, path);
git_commit_close(head_commit);
// Find file in Workdir // Find file in Workdir
dirent_st.workdir_path_len = strlen(repo->path_workdir); dirent_st.workdir_path_len = strlen(repo->path_workdir);
...@@ -346,8 +350,10 @@ int git_status_file(unsigned int *status_flags, git_repository *repo, const char ...@@ -346,8 +350,10 @@ int git_status_file(unsigned int *status_flags, git_repository *repo, const char
strcpy(temp_path, repo->path_workdir); strcpy(temp_path, repo->path_workdir);
git_futils_direach(temp_path, GIT_PATH_MAX, single_dirent_cb, &dirent_st); git_futils_direach(temp_path, GIT_PATH_MAX, single_dirent_cb, &dirent_st);
if ((error = set_status_flags(e)) < GIT_SUCCESS) if ((error = set_status_flags(e)) < GIT_SUCCESS) {
free(e);
return git__throw(error, "Nonexistent file"); return git__throw(error, "Nonexistent file");
}
*status_flags = e->status_flags; *status_flags = e->status_flags;
......
...@@ -39,6 +39,7 @@ BEGIN_TEST(buf0, "check that resizing works properly") ...@@ -39,6 +39,7 @@ BEGIN_TEST(buf0, "check that resizing works properly")
git_buf_puts(&buf, test_string); git_buf_puts(&buf, test_string);
must_be_true(strlen(git_buf_cstr(&buf)) == strlen(test_string) * 2); must_be_true(strlen(git_buf_cstr(&buf)) == strlen(test_string) * 2);
git_buf_free(&buf);
END_TEST END_TEST
BEGIN_TEST(buf1, "check that printf works properly") BEGIN_TEST(buf1, "check that printf works properly")
...@@ -51,6 +52,7 @@ BEGIN_TEST(buf1, "check that printf works properly") ...@@ -51,6 +52,7 @@ BEGIN_TEST(buf1, "check that printf works properly")
git_buf_printf(&buf, "%s %d", "woop", 42); git_buf_printf(&buf, "%s %d", "woop", 42);
must_be_true(git_buf_oom(&buf) == 0); must_be_true(git_buf_oom(&buf) == 0);
must_be_true(strcmp(git_buf_cstr(&buf), "shoop da 23 woop 42") == 0); must_be_true(strcmp(git_buf_cstr(&buf), "shoop da 23 woop 42") == 0);
git_buf_free(&buf);
END_TEST END_TEST
BEGIN_SUITE(buffers) BEGIN_SUITE(buffers)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment