summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-11-20 14:39:51 +0100
committerJunio C Hamano <gitster@pobox.com>2024-11-21 00:23:46 +0100
commit52c7dbd036e1e5dd2ef854737c3010b3d0a2f3ca (patch)
tree1594de29e651d46277d744e9f0503c67c4cc3961
parentglobal: drop `UNLEAK()` annotation (diff)
downloadgit-52c7dbd036e1e5dd2ef854737c3010b3d0a2f3ca.tar.xz
git-52c7dbd036e1e5dd2ef854737c3010b3d0a2f3ca.zip
git-compat-util: drop now-unused `UNLEAK()` macro
The `UNLEAK()` macro has been introduced with 0e5bba53af (add UNLEAK annotation for reducing leak false positives, 2017-09-08) to help us reduce the amount of reported memory leaks in cases we don't care about, e.g. when exiting immediately afterwards. We have since removed all of its users in favor of freeing the memory and thus don't need the macro anymore. Remove it. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--git-compat-util.h20
-rw-r--r--usage.c15
2 files changed, 0 insertions, 35 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index e4a306dd56..a06d4f3809 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -1527,26 +1527,6 @@ int cmd_main(int, const char **);
int common_exit(const char *file, int line, int code);
#define exit(code) exit(common_exit(__FILE__, __LINE__, (code)))
-/*
- * You can mark a stack variable with UNLEAK(var) to avoid it being
- * reported as a leak by tools like LSAN or valgrind. The argument
- * should generally be the variable itself (not its address and not what
- * it points to). It's safe to use this on pointers which may already
- * have been freed, or on pointers which may still be in use.
- *
- * Use this _only_ for a variable that leaks by going out of scope at
- * program exit (so only from cmd_* functions or their direct helpers).
- * Normal functions, especially those which may be called multiple
- * times, should actually free their memory. This is only meant as
- * an annotation, and does nothing in non-leak-checking builds.
- */
-#ifdef SUPPRESS_ANNOTATED_LEAKS
-void unleak_memory(const void *ptr, size_t len);
-#define UNLEAK(var) unleak_memory(&(var), sizeof(var))
-#else
-#define UNLEAK(var) do {} while (0)
-#endif
-
#define z_const
#include <zlib.h>
diff --git a/usage.c b/usage.c
index 7a2f7805f5..29a9725784 100644
--- a/usage.c
+++ b/usage.c
@@ -350,18 +350,3 @@ void bug_fl(const char *file, int line, const char *fmt, ...)
trace2_cmd_error_va(fmt, ap);
va_end(ap);
}
-
-#ifdef SUPPRESS_ANNOTATED_LEAKS
-void unleak_memory(const void *ptr, size_t len)
-{
- static struct suppressed_leak_root {
- struct suppressed_leak_root *next;
- char data[FLEX_ARRAY];
- } *suppressed_leaks;
- struct suppressed_leak_root *root;
-
- FLEX_ALLOC_MEM(root, data, ptr, len);
- root->next = suppressed_leaks;
- suppressed_leaks = root;
-}
-#endif