diff options
| author | Lennart Poettering <lennart@poettering.net> | 2009-02-18 21:50:09 +0100 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-02-18 21:50:09 +0100 | 
| commit | dc1ad08a65302c537d607f29be51a0c64cddec7c (patch) | |
| tree | 9e87e3105ba8812093f1b3c3eb1555cfd313feb9 /src/modules | |
| parent | ff58fa8870a62c88dba0fb26a77331e1f27c73a8 (diff) | |
minor optimizations
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/alsa/alsa-util.c | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index 7cecfd15..50ba35ac 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -343,7 +343,8 @@ int pa_alsa_set_hw_params(          goto finish;      if (_use_mmap) { -        if ((ret = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_MMAP_INTERLEAVED)) < 0) { + +        if (snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_MMAP_INTERLEAVED) < 0) {              /* mmap() didn't work, fall back to interleaved */ @@ -806,8 +807,7 @@ snd_pcm_t *pa_alsa_open_by_device_string(                                  SND_PCM_NO_AUTO_CHANNELS|                                  (reformat ? 0 : SND_PCM_NO_AUTO_FORMAT))) < 0) {              pa_log_info("Error opening PCM device %s: %s", d, snd_strerror(err)); -            pa_xfree(d); -            return NULL; +            goto fail;          }          if ((err = pa_alsa_set_hw_params(pcm_handle, ss, nfrags, period_size, tsched_size, use_mmap, use_tsched, require_exact_channel_number)) < 0) { @@ -835,9 +835,9 @@ snd_pcm_t *pa_alsa_open_by_device_string(              }              pa_log_info("Failed to set hardware parameters on %s: %s", d, snd_strerror(err)); -            pa_xfree(d);              snd_pcm_close(pcm_handle); -            return NULL; + +            goto fail;          }          if (dev) @@ -850,6 +850,11 @@ snd_pcm_t *pa_alsa_open_by_device_string(          return pcm_handle;      } + +fail: +    pa_xfree(d); + +    return NULL;  }  int pa_alsa_probe_profiles( | 
