do not cleanup staticly allocated memory unless we are in valgrind mode
authorLennart Poettering <lennart@poettering.net>
Fri, 3 Oct 2008 22:14:02 +0000 (00:14 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 3 Oct 2008 22:14:02 +0000 (00:14 +0200)
src/pulsecore/flist.h
src/pulsecore/log.c
src/pulsecore/thread.h

index 2d8422f..512dd35 100644 (file)
@@ -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));               \
     }                                                                   \
index d731808..b1de696 100644 (file)
@@ -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);
 }
index 87e850d..eabe9ba 100644 (file)
@@ -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) {                                                 \