mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-12-16 08:56:40 -05:00
add some code to make invalid valgrind warnings go away
This commit is contained in:
parent
c6b18880be
commit
5cc2187bec
4 changed files with 51 additions and 1 deletions
|
|
@ -490,6 +490,10 @@ if test "x${with_caps}" != "xno"; then
|
||||||
fi])
|
fi])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#### Valgrind (optional) ####
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([valgrind/memcheck.h])
|
||||||
|
|
||||||
#### pkg-config ####
|
#### pkg-config ####
|
||||||
|
|
||||||
# Check for pkg-config manually first, as if its not installed the
|
# Check for pkg-config manually first, as if its not installed the
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@
|
||||||
|
|
||||||
#include <asoundlib.h>
|
#include <asoundlib.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
#include <valgrind/memcheck.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <pulse/xmalloc.h>
|
#include <pulse/xmalloc.h>
|
||||||
#include <pulse/util.h>
|
#include <pulse/util.h>
|
||||||
#include <pulse/timeval.h>
|
#include <pulse/timeval.h>
|
||||||
|
|
@ -766,6 +770,10 @@ static int sink_get_volume_cb(pa_sink *s) {
|
||||||
if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0)
|
if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol));
|
||||||
|
#endif
|
||||||
|
|
||||||
r.values[i] = pa_sw_volume_from_dB((double) alsa_vol / 100.0);
|
r.values[i] = pa_sw_volume_from_dB((double) alsa_vol / 100.0);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
@ -784,6 +792,10 @@ static int sink_get_volume_cb(pa_sink *s) {
|
||||||
if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0)
|
if ((err = snd_mixer_selem_get_playback_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol));
|
||||||
|
#endif
|
||||||
|
|
||||||
pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) alsa_vol / 100.0));
|
pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) alsa_vol / 100.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1435,6 +1447,11 @@ int pa__init(pa_module*m) {
|
||||||
if (snd_mixer_selem_get_playback_dB_range(u->mixer_elem, &u->hw_dB_min, &u->hw_dB_max) < 0)
|
if (snd_mixer_selem_get_playback_dB_range(u->mixer_elem, &u->hw_dB_min, &u->hw_dB_max) < 0)
|
||||||
pa_log_info("Mixer doesn't support dB information.");
|
pa_log_info("Mixer doesn't support dB information.");
|
||||||
else {
|
else {
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_min, sizeof(u->hw_dB_min));
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_max, sizeof(u->hw_dB_max));
|
||||||
|
#endif
|
||||||
|
|
||||||
pa_log_info("Volume ranges from %0.2f dB to %0.2f dB.", u->hw_dB_min/100.0, u->hw_dB_max/100.0);
|
pa_log_info("Volume ranges from %0.2f dB to %0.2f dB.", u->hw_dB_min/100.0, u->hw_dB_max/100.0);
|
||||||
pa_assert(u->hw_dB_min < u->hw_dB_max);
|
pa_assert(u->hw_dB_min < u->hw_dB_max);
|
||||||
u->hw_dB_supported = TRUE;
|
u->hw_dB_supported = TRUE;
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@
|
||||||
|
|
||||||
#include <asoundlib.h>
|
#include <asoundlib.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
#include <valgrind/memcheck.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <pulse/xmalloc.h>
|
#include <pulse/xmalloc.h>
|
||||||
#include <pulse/util.h>
|
#include <pulse/util.h>
|
||||||
#include <pulse/timeval.h>
|
#include <pulse/timeval.h>
|
||||||
|
|
@ -710,6 +714,10 @@ static int source_get_volume_cb(pa_source *s) {
|
||||||
if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0)
|
if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, u->mixer_map[i], &alsa_vol)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol));
|
||||||
|
#endif
|
||||||
|
|
||||||
r.values[i] = pa_sw_volume_from_dB((double) alsa_vol / 100.0);
|
r.values[i] = pa_sw_volume_from_dB((double) alsa_vol / 100.0);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
@ -728,6 +736,10 @@ static int source_get_volume_cb(pa_source *s) {
|
||||||
if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0)
|
if ((err = snd_mixer_selem_get_capture_dB(u->mixer_elem, SND_MIXER_SCHN_MONO, &alsa_vol)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&alsa_vol, sizeof(alsa_vol));
|
||||||
|
#endif
|
||||||
|
|
||||||
pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) alsa_vol / 100.0));
|
pa_cvolume_set(&r, s->sample_spec.channels, pa_sw_volume_from_dB((double) alsa_vol / 100.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1255,6 +1267,11 @@ int pa__init(pa_module*m) {
|
||||||
if (snd_mixer_selem_get_capture_dB_range(u->mixer_elem, &u->hw_dB_min, &u->hw_dB_max) < 0)
|
if (snd_mixer_selem_get_capture_dB_range(u->mixer_elem, &u->hw_dB_min, &u->hw_dB_max) < 0)
|
||||||
pa_log_info("Mixer doesn't support dB information.");
|
pa_log_info("Mixer doesn't support dB information.");
|
||||||
else {
|
else {
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_min, sizeof(u->hw_dB_min));
|
||||||
|
VALGRIND_MAKE_MEM_DEFINED(&u->hw_dB_max, sizeof(u->hw_dB_max));
|
||||||
|
#endif
|
||||||
|
|
||||||
pa_log_info("Volume ranges from %0.2f dB to %0.2f dB.", u->hw_dB_min/100.0, u->hw_dB_max/100.0);
|
pa_log_info("Volume ranges from %0.2f dB to %0.2f dB.", u->hw_dB_min/100.0, u->hw_dB_max/100.0);
|
||||||
pa_assert(u->hw_dB_min < u->hw_dB_max);
|
pa_assert(u->hw_dB_min < u->hw_dB_max);
|
||||||
u->hw_dB_supported = TRUE;
|
u->hw_dB_supported = TRUE;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,10 @@
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
#include <valgrind/memcheck.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <pulse/xmalloc.h>
|
#include <pulse/xmalloc.h>
|
||||||
#include <pulse/def.h>
|
#include <pulse/def.h>
|
||||||
|
|
||||||
|
|
@ -257,6 +261,10 @@ static struct mempool_slot* mempool_allocate_slot(pa_mempool *p) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_MALLOCLIKE_BLOCK(slot, p->block_size, 0, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
return slot;
|
return slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -519,7 +527,7 @@ static void memblock_free(pa_memblock *b) {
|
||||||
case PA_MEMBLOCK_POOL_EXTERNAL:
|
case PA_MEMBLOCK_POOL_EXTERNAL:
|
||||||
case PA_MEMBLOCK_POOL: {
|
case PA_MEMBLOCK_POOL: {
|
||||||
struct mempool_slot *slot;
|
struct mempool_slot *slot;
|
||||||
int call_free;
|
pa_bool_t call_free;
|
||||||
|
|
||||||
slot = mempool_slot_by_ptr(b->pool, pa_atomic_ptr_load(&b->data));
|
slot = mempool_slot_by_ptr(b->pool, pa_atomic_ptr_load(&b->data));
|
||||||
pa_assert(slot);
|
pa_assert(slot);
|
||||||
|
|
@ -532,6 +540,10 @@ static void memblock_free(pa_memblock *b) {
|
||||||
while (pa_flist_push(b->pool->free_slots, slot) < 0)
|
while (pa_flist_push(b->pool->free_slots, slot) < 0)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||||
|
VALGRIND_FREELIKE_BLOCK(slot, b->pool->block_size);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (call_free)
|
if (call_free)
|
||||||
if (pa_flist_push(PA_STATIC_FLIST_GET(unused_memblocks), b) < 0)
|
if (pa_flist_push(PA_STATIC_FLIST_GET(unused_memblocks), b) < 0)
|
||||||
pa_xfree(b);
|
pa_xfree(b);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue