summaryrefslogtreecommitdiff
path: root/t/t6500-gc.sh
diff options
context:
space:
mode:
authorLibravatar Martin Ågren <martin.agren@gmail.com>2017-09-23 01:34:52 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-09-24 10:06:01 +0900
commitdcb572ab94f83a1a857d276fcebff5700077f2b7 (patch)
tree2ab4004547e87a0a54c3e403f746a0dd27c00744 /t/t6500-gc.sh
parentleak_pending: use `object_array_clear()`, not `free()` (diff)
downloadtgif-dcb572ab94f83a1a857d276fcebff5700077f2b7.tar.xz
object_array: use `object_array_clear()`, not `free()`
Instead of freeing `foo.objects` for an object array `foo` (sometimes conditionally), call `object_array_clear(&foo)`. This means we don't poke as much into the implementation, which is already a good thing, but also that we release the individual entries as well, thereby fixing at least one memory-leak (in diff-lib.c). If someone is holding on to a pointer to an element's `name` or `path`, that is now a dangling pointer, i.e., we'd be turning an unpleasant situation into an outright bug. To the best of my understanding no such long-term pointers are being taken. The way we handle `study` in builting/reflog.c still looks like it might leak. That will be addressed in the next commit. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t6500-gc.sh')
0 files changed, 0 insertions, 0 deletions