summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-10-04 00:14:02 +0200
committerLennart Poettering <lennart@poettering.net>2008-10-04 00:14:02 +0200
commit82c46f223823e8359ee2b788a83eac0ab82c912a (patch)
tree7d19ffee51ac5d0ddabcbad85691d5f64f28282c /src/pulsecore
parent3c193520ee59703b9e4453db0bff8f9c6b8a06c2 (diff)
do not cleanup staticly allocated memory unless we are in valgrind mode
Diffstat (limited to 'src/pulsecore')
-rw-r--r--src/pulsecore/flist.h3
-rw-r--r--src/pulsecore/log.c3
-rw-r--r--src/pulsecore/thread.h3
3 files changed, 9 insertions, 0 deletions
diff --git a/src/pulsecore/flist.h b/src/pulsecore/flist.h
index 2d8422f9..512dd357 100644
--- a/src/pulsecore/flist.h
+++ b/src/pulsecore/flist.h
@@ -26,6 +26,7 @@
#include <pulse/gccmacro.h>
#include <pulsecore/once.h>
+#include <pulsecore/core-util.h>
/* A multiple-reader multipler-write lock-free free list implementation */
@@ -56,6 +57,8 @@ void* pa_flist_pop(pa_flist*l);
} \
static void name##_flist_destructor(void) PA_GCC_DESTRUCTOR; \
static void name##_flist_destructor(void) { \
+ if (!pa_in_valgrind()) \
+ return; \
if (name##_flist.flist) \
pa_flist_free(name##_flist.flist, (free_cb)); \
} \
diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c
index d7318081..b1de6966 100644
--- a/src/pulsecore/log.c
+++ b/src/pulsecore/log.c
@@ -85,6 +85,9 @@ void pa_log_set_ident(const char *p) {
/* To make valgrind shut up. */
static void ident_destructor(void) PA_GCC_DESTRUCTOR;
static void ident_destructor(void) {
+ if (!pa_in_valgrind())
+ return;
+
pa_xfree(log_ident);
pa_xfree(log_ident_local);
}
diff --git a/src/pulsecore/thread.h b/src/pulsecore/thread.h
index 87e850d6..eabe9ba4 100644
--- a/src/pulsecore/thread.h
+++ b/src/pulsecore/thread.h
@@ -25,6 +25,7 @@
#include <pulse/def.h>
#include <pulsecore/once.h>
+#include <pulsecore/core-util.h>
#ifndef PACKAGE
#error "Please include config.h before including this file!"
@@ -69,6 +70,8 @@ void *pa_tls_set(pa_tls *t, void *userdata);
static void name##_tls_destructor(void) PA_GCC_DESTRUCTOR; \
static void name##_tls_destructor(void) { \
static void (*_free_cb)(void*) = free_cb; \
+ if (!pa_in_valgrind()) \
+ return; \
if (!name##_tls.tls) \
return; \
if (_free_cb) { \