summaryrefslogtreecommitdiffstats
path: root/src/modules/alsa
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-02-18 21:50:09 +0100
committerLennart Poettering <lennart@poettering.net>2009-02-18 21:50:09 +0100
commitdc1ad08a65302c537d607f29be51a0c64cddec7c (patch)
tree9e87e3105ba8812093f1b3c3eb1555cfd313feb9 /src/modules/alsa
parentff58fa8870a62c88dba0fb26a77331e1f27c73a8 (diff)
minor optimizations
Diffstat (limited to 'src/modules/alsa')
-rw-r--r--src/modules/alsa/alsa-util.c15
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(