[vlc-commits] aout: fix error handling when output creation fails
Rémi Denis-Courmont
git at videolan.org
Thu Aug 4 17:16:40 CEST 2011
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Aug 4 15:44:15 2011 +0300| [70e32d82dc98e813b440479a6601a9bf4ea64b3e] | committer: Rémi Denis-Courmont
aout: fix error handling when output creation fails
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=70e32d82dc98e813b440479a6601a9bf4ea64b3e
---
src/audio_output/dec.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/audio_output/dec.c b/src/audio_output/dec.c
index 0f259eb..cd09fac 100644
--- a/src/audio_output/dec.c
+++ b/src/audio_output/dec.c
@@ -95,30 +95,30 @@ aout_input_t *aout_DecNew( audio_output_t *p_aout,
aout_owner_t *owner = aout_owner(p_aout);
aout_lock( p_aout );
assert (owner->input == NULL);
- owner->input = p_input;
var_Destroy( p_aout, "audio-device" );
var_Destroy( p_aout, "audio-channels" );
/* Recreate the output using the new format. */
if( aout_OutputNew( p_aout, p_format ) < 0 )
-#warning Input without output and mixer = bad idea.
- goto out;
+ goto error;
assert (owner->volume.mixer == NULL);
owner->volume.mixer = aout_MixerNew (p_aout, owner->mixer_format.i_format);
if (owner->volume.mixer == NULL)
{
aout_OutputDelete( p_aout );
-#warning Memory leak.
- p_input = NULL;
- goto out;
+ goto error;
}
+ owner->input = p_input;
aout_InputNew( p_aout, p_input, p_request_vout );
-out:
aout_unlock( p_aout );
return p_input;
+error:
+ aout_unlock( p_aout );
+ free( p_input );
+ return NULL;
}
/*****************************************************************************
More information about the vlc-commits
mailing list