diff --git a/themed/base.html b/themed/base.html
index ecf7996..3ecef0b 100644
--- a/themed/base.html
+++ b/themed/base.html
@@ -163,11 +163,13 @@
// Process the commit
num_commits++;
- // ?? This causes subsequent walks to return commits with index 0
+ // This causes subsequent walks to return commits with index 0 - unsure why
+ // Checked with Valgrind - commenting this out seems not to leak memory
//release_commit_memory(the_repository->parsed_objects, commit);
//commit->parents = NULL;
}
reset_revision_walk();
+ release_revisions(&rev);
return num_commits;
}
diff --git a/themed/log.html b/themed/log.html
index 245e458..d47436b 100644
--- a/themed/log.html
+++ b/themed/log.html
@@ -50,8 +50,9 @@
{! release_commit_memory(the_repository->parsed_objects, commit); !}
{! commit->parents = NULL; !}
{% endwhile %}
- {! reset_revision_walk(); !}
+ {! reset_revision_walk(); !}
+ {! release_revisions(&rev); !}
{! page_end(); !}
{% endpage %}
diff --git a/themed/summary.html b/themed/summary.html
index 4a3ca3f..c22248e 100644
--- a/themed/summary.html
+++ b/themed/summary.html
@@ -66,6 +66,7 @@
{! cgit_print_age(info->committer_date, info->committer_tz, TM_WEEK * 2); !} ago
+ {! cgit_free_commitinfo(info); !}
{# Files #}
{!
const struct object_id *tree_oid = get_commit_tree_oid(commit);
diff --git a/themed/tree.html b/themed/tree.html
index f1a6a83..2bf7378 100644
--- a/themed/tree.html
+++ b/themed/tree.html
@@ -85,6 +85,7 @@
} else {
cgit_tree_print_text_buffer(basename, buf, size);
}
+ free(buf);
!}
{% endif %}
@@ -110,6 +111,7 @@
strbuf_addstr(&buffer, pathname);
if (strcmp(walk_tree_ctx->match_path, buffer.buf)) {
// Not the target path, so continue to walk the tree
+ strbuf_release(&buffer);
return READ_TREE_RECURSIVE;
}
@@ -141,6 +143,7 @@
tree_content_directory_item(oid, base, pathname, mode, walk_tree_ctx->directory_child_idx);
walk_tree_ctx->directory_child_idx++;
}
+ strbuf_release(&buffer);
return 0;
}