Fixed memory leaks in test suite
[libgit2.git] / src / commit.h
blob760529d873e72200ecd6cf05179fa0573ce77fe1
1 #ifndef INCLUDE_commit_h__
2 #define INCLUDE_commit_h__
4 #include "git/commit.h"
5 #include "revobject.h"
7 #include <time.h>
9 struct git_commit_node {
10 struct git_commit *commit;
12 struct git_commit_node *next;
13 struct git_commit_node *prev;
16 struct git_commit_list {
17 struct git_commit_node *head;
18 struct git_commit_node *tail;
19 size_t size;
22 typedef struct git_commit_list git_commit_list;
23 typedef struct git_commit_node git_commit_node;
25 struct git_commit {
26 git_revpool_object object;
28 time_t commit_time;
29 git_commit_list parents;
31 unsigned short in_degree;
32 unsigned parsed:1,
33 seen:1,
34 uninteresting:1,
35 topo_delay:1,
36 flags:26;
39 int git_commit__parse_oid(git_oid *oid, char **buffer_out, const char *buffer_end, const char *header);
40 int git_commit__parse_buffer(git_commit *commit, void *data, size_t len);
41 int git_commit__parse_time(time_t *commit_time, char *buffer, const char *buffer_end);
42 void git_commit__mark_uninteresting(git_commit *commit);
44 int git_commit_parse_existing(git_commit *commit);
47 int git_commit_list_push_back(git_commit_list *list, git_commit *commit);
48 int git_commit_list_push_front(git_commit_list *list, git_commit *commit);
50 git_commit *git_commit_list_pop_back(git_commit_list *list);
51 git_commit *git_commit_list_pop_front(git_commit_list *list);
53 void git_commit_list_clear(git_commit_list *list, int free_commits);
55 void git_commit_list_timesort(git_commit_list *list);
56 void git_commit_list_toposort(git_commit_list *list);
58 #endif