From e2708c8b3e056d8bf39e79035721ab7d900d743d Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Thu, 19 Jun 2014 22:46:46 -0700 Subject: [PATCH] Cleanup creating decoders --- src/sound/i_sound.cpp | 45 ++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/sound/i_sound.cpp b/src/sound/i_sound.cpp index b533ff2dd0..88cece9d44 100644 --- a/src/sound/i_sound.cpp +++ b/src/sound/i_sound.cpp @@ -543,22 +543,19 @@ SoundDecoder *SoundRenderer::CreateDecoder(const BYTE *sfxdata, int length) SoundDecoder *decoder = NULL; #ifdef HAVE_MPG123 decoder = new MPG123Decoder; - if(!decoder->open((const char*)sfxdata, length)) - { - delete decoder; - decoder = NULL; - } + if(decoder->open((const char*)sfxdata, length)) + return decoder; + + delete decoder; + decoder = NULL; #endif #ifdef HAVE_SNDFILE - if(!decoder) - { - decoder = new SndFileDecoder; - if(!decoder->open((const char*)sfxdata, length)) - { - delete decoder; - decoder = NULL; - } - } + decoder = new SndFileDecoder; + if(decoder->open((const char*)sfxdata, length)) + return decoder; + + delete decoder; + decoder = NULL; #endif return decoder; } @@ -568,19 +565,19 @@ SoundDecoder* SoundRenderer::CreateDecoder(const char *fname, int offset, int le SoundDecoder *decoder = NULL; #ifdef HAVE_MPG123 decoder = new MPG123Decoder; - if(!decoder->open(fname, offset, length)) - { - delete decoder; - decoder = NULL; - } + if(decoder->open(fname, offset, length)) + return decoder; + + delete decoder; + decoder = NULL; #endif #ifdef HAVE_SNDFILE decoder = new SndFileDecoder; - if(!decoder->open(fname, offset, length)) - { - delete decoder; - decoder = NULL; - } + if(decoder->open(fname, offset, length)) + return decoder; + + delete decoder; + decoder = NULL; #endif return decoder; }