aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.c5
-rw-r--r--audio/wavcapture.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/audio/audio.c b/audio/audio.c
index 9be77c09d0..8e7af1aca5 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1845,16 +1845,21 @@ void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque)
if (!cap->cb_head.lh_first) {
SWVoiceOut *sw = cap->hw.sw_head.lh_first, *sw1;
+
while (sw) {
+ SWVoiceCap *sc = (SWVoiceCap *) sw;
#ifdef DEBUG_CAPTURE
dolog ("freeing %s\n", sw->name);
#endif
+
sw1 = sw->entries.le_next;
if (sw->rate) {
st_rate_stop (sw->rate);
sw->rate = NULL;
}
LIST_REMOVE (sw, entries);
+ LIST_REMOVE (sc, entries);
+ qemu_free (sc);
sw = sw1;
}
LIST_REMOVE (cap, entries);
diff --git a/audio/wavcapture.c b/audio/wavcapture.c
index 748b58006e..f55d59cac6 100644
--- a/audio/wavcapture.c
+++ b/audio/wavcapture.c
@@ -121,7 +121,8 @@ int wav_start_capture (CaptureState *s, const char *path, int freq,
wav = qemu_mallocz (sizeof (*wav));
if (!wav) {
- AUD_log ("wav", "Could not allocate memory (%zu bytes)", sizeof (*wav));
+ term_printf ("Could not allocate memory for wav capture (%zu bytes)",
+ sizeof (*wav));
return -1;
}