summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <mznyfn@0pointer.de>2009-07-31 16:02:05 +0200
committerTakashi Iwai <tiwai@suse.de>2009-08-03 12:36:14 +0200
commit422958fa4b8101af842220a67e77c8090ad34a8b (patch)
treec826b2ceca95370ad4ef5f27fbefae6de1cd08d0
parentd2ea09f162f114480516a9d993d3d71bf357c835 (diff)
pulse: unify destruction of snd_pulse_t
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--pulse/pulse.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/pulse/pulse.c b/pulse/pulse.c
index dd17384..ae66b0c 100644
--- a/pulse/pulse.c
+++ b/pulse/pulse.c
@@ -217,36 +217,29 @@ snd_pulse_t *pulse_new(void)
return p;
fail:
+ pulse_free(p);
+
+ return NULL;
+}
+
+void pulse_free(snd_pulse_t * p)
+{
if (p->mainloop)
pa_threaded_mainloop_stop(p->mainloop);
- if (p->context)
+ if (p->context) {
+ pa_context_disconnect(p->context);
pa_context_unref(p->context);
+ }
if (p->mainloop)
pa_threaded_mainloop_free(p->mainloop);
- if (p->main_fd >= 0)
- close(p->main_fd);
-
if (p->thread_fd >= 0)
close(p->thread_fd);
- free(p);
-
- return NULL;
-}
-
-void pulse_free(snd_pulse_t * p)
-{
- pa_threaded_mainloop_stop(p->mainloop);
-
- pa_context_disconnect(p->context);
- pa_context_unref(p->context);
- pa_threaded_mainloop_free(p->mainloop);
-
- close(p->thread_fd);
- close(p->main_fd);
+ if (p->main_fd >= 0)
+ close(p->main_fd);
free(p);
}