# HG changeset patch # User Sam Lantinga # Date 1076484389 0 # Node ID 0defd90ef27c5e6a7275bbd92913995984e10f71 # Parent 674df5617bbaa7a7a4ff441b6e56bc1334f98a5a Simplify code and clean up Valgrind warning diff -r 674df5617bba -r 0defd90ef27c src/audio/SDL_audio.c --- a/src/audio/SDL_audio.c Wed Feb 11 07:09:11 2004 +0000 +++ b/src/audio/SDL_audio.c Wed Feb 11 07:26:29 2004 +0000 @@ -461,35 +461,29 @@ } /* See if we need to do any conversion */ - if ( memcmp(desired, &audio->spec, sizeof(audio->spec)) == 0 ) { - /* Just copy over the desired audio specification */ - if ( obtained != NULL ) { - memcpy(obtained, &audio->spec, sizeof(audio->spec)); + if ( obtained != NULL ) { + memcpy(obtained, &audio->spec, sizeof(audio->spec)); + } else if ( desired->freq != audio->spec.freq || + desired->format != audio->spec.format || + desired->channels != audio->spec.channels ) { + /* Build an audio conversion block */ + if ( SDL_BuildAudioCVT(&audio->convert, + desired->format, desired->channels, + desired->freq, + audio->spec.format, audio->spec.channels, + audio->spec.freq) < 0 ) { + SDL_CloseAudio(); + return(-1); } - } else { - /* Copy over the audio specification if possible */ - if ( obtained != NULL ) { - memcpy(obtained, &audio->spec, sizeof(audio->spec)); - } else { - /* Build an audio conversion block */ - if ( SDL_BuildAudioCVT(&audio->convert, - desired->format, desired->channels, - desired->freq, - audio->spec.format, audio->spec.channels, - audio->spec.freq) < 0 ) { + if ( audio->convert.needed ) { + audio->convert.len = desired->size; + audio->convert.buf =(Uint8 *)SDL_AllocAudioMem( + audio->convert.len*audio->convert.len_mult); + if ( audio->convert.buf == NULL ) { SDL_CloseAudio(); + SDL_OutOfMemory(); return(-1); } - if ( audio->convert.needed ) { - audio->convert.len = desired->size; - audio->convert.buf =(Uint8 *)SDL_AllocAudioMem( - audio->convert.len*audio->convert.len_mult); - if ( audio->convert.buf == NULL ) { - SDL_CloseAudio(); - SDL_OutOfMemory(); - return(-1); - } - } } }