]> git.ipfire.org Git - thirdparty/git.git/commit
global: drop `UNLEAK()` annotation
authorPatrick Steinhardt <ps@pks.im>
Wed, 20 Nov 2024 13:39:50 +0000 (14:39 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 20 Nov 2024 23:23:46 +0000 (08:23 +0900)
commitd91a9db33c53744b3d1034926edda7846442bc9e
treeb0f199e4492d3f03787b9e97b923f0af446a0415
parent818e165898d5d3020c88c01544b69b2e65d7f644
global: drop `UNLEAK()` annotation

There are two users of `UNLEAK()` left in our codebase:

  - In "builtin/clone.c", annotating the `repo` variable. That leak has
    already been fixed though as you can see in the context, where we do
    know to free `repo_to_free`.

  - In "builtin/diff.c", to unleak entries of the `blob[]` array. That
    leak has also been fixed, because the entries we assign to that
    array come from `rev.pending.objects`, and we do eventually release
    `rev`.

This neatly demonstrates one of the issues with `UNLEAK()`: it is quite
easy for the annotation to become stale. A second issue is that its
whole intent is to paper over leaks. And while that has been a necessary
evil in the past, because Git was leaking left and right, it isn't
really much of an issue nowadays where our test suite has no known leaks
anymore.

Remove the last two users of this macro.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c
builtin/diff.c