diff options
| author | Junio C Hamano <gitster@pobox.com> | 2017-11-27 10:57:02 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2017-11-27 10:57:02 +0900 |
| commit | 80a0e0fdd6b51744a7c76583874e2993df645e47 (patch) | |
| tree | 3ca2a1e5a94ab89c59d7f3084c7339cd23dd312a /commit.h | |
| parent | Merge branch 'ma/bisect-leakfix' into maint (diff) | |
| parent | reduce_heads: fix memory leaks (diff) | |
| download | git-80a0e0fdd6b51744a7c76583874e2993df645e47.tar.gz git-80a0e0fdd6b51744a7c76583874e2993df645e47.zip | |
Merge branch 'ma/reduce-heads-leakfix' into maint
Leak fixes.
* ma/reduce-heads-leakfix:
reduce_heads: fix memory leaks
builtin/merge-base: free commit lists
Diffstat (limited to 'commit.h')
| -rw-r--r-- | commit.h | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -313,7 +313,23 @@ extern int interactive_add(int argc, const char **argv, const char *prefix, int extern int run_add_interactive(const char *revision, const char *patch_mode, const struct pathspec *pathspec); -struct commit_list *reduce_heads(struct commit_list *heads); +/* + * Takes a list of commits and returns a new list where those + * have been removed that can be reached from other commits in + * the list. It is useful for, e.g., reducing the commits + * randomly thrown at the git-merge command and removing + * redundant commits that the user shouldn't have given to it. + * + * This function destroys the STALE bit of the commit objects' + * flags. + */ +extern struct commit_list *reduce_heads(struct commit_list *heads); + +/* + * Like `reduce_heads()`, except it replaces the list. Use this + * instead of `foo = reduce_heads(foo);` to avoid memory leaks. + */ +extern void reduce_heads_replace(struct commit_list **heads); struct commit_extra_header { struct commit_extra_header *next; |
