diff options
Diffstat (limited to 'audio')
-rw-r--r-- | audio/audio.c | 5 | ||||
-rw-r--r-- | audio/wavcapture.c | 3 |
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; } |