diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-09-29 11:23:43 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-09-29 11:23:43 +0900 |
commit | 69c54c72845ebc686d0f4bdd8d44b06f799b0a80 (patch) | |
tree | bbd4e768952cbd26dd7ddaec0ab915fcda9987a8 /revision.h | |
parent | 14a8168e2fed3934f1f9afb286f1c64345d06790 (diff) | |
parent | 4d01a7fa65c50e817a935396432e199b7a565f53 (diff) | |
download | git-69c54c72845ebc686d0f4bdd8d44b06f799b0a80.tar.gz |
Merge branch 'ma/leakplugs'
Memory leaks in various codepaths have been plugged.
* ma/leakplugs:
pack-bitmap[-write]: use `object_array_clear()`, don't leak
object_array: add and use `object_array_pop()`
object_array: use `object_array_clear()`, not `free()`
leak_pending: use `object_array_clear()`, not `free()`
commit: fix memory leak in `reduce_heads()`
builtin/commit: fix memory leak in `prepare_index()`
Diffstat (limited to 'revision.h')
-rw-r--r-- | revision.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/revision.h b/revision.h index 3a3d3e2cf8..54761200ad 100644 --- a/revision.h +++ b/revision.h @@ -150,6 +150,17 @@ struct rev_info { date_mode_explicit:1, preserve_subject:1; unsigned int disable_stdin:1; + /* + * Set `leak_pending` to prevent `prepare_revision_walk()` from clearing + * the array of pending objects (`pending`). It will still forget about + * the array and its entries, so they really are leaked. This can be + * useful if the `struct object_array` `pending` is copied before + * calling `prepare_revision_walk()`. By setting `leak_pending`, you + * effectively claim ownership of the old array, so you should most + * likely call `object_array_clear(&pending_copy)` once you are done. + * Observe that this is about ownership of the array and its entries, + * not the commits referenced by those entries. + */ unsigned int leak_pending:1; /* --show-linear-break */ unsigned int track_linear:1, |