[alsa-devel] [PATCH 3/4] pulse: unify destruction of snd_pulse_t

Lennart Poettering mznyfn at 0pointer.de
Fri Jul 31 16:02:05 CEST 2009


---
 pulse/pulse.c |   31 ++++++++++++-------------------
 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);
 }
-- 
1.6.3.3



Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4


More information about the Alsa-devel mailing list