]> git.alsa-project.org Git - alsa-plugins.git/commitdiff
pulse: unify destruction of snd_pulse_t
authorLennart Poettering <mznyfn@0pointer.de>
Fri, 31 Jul 2009 14:02:05 +0000 (16:02 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 3 Aug 2009 10:36:14 +0000 (12:36 +0200)
Signed-off-by: Takashi Iwai <tiwai@suse.de>
pulse/pulse.c

index dd173849854bfe1e1c6dab1c14d7e6f34f2bae24..ae66b0c5fbc958f397cfee341f311a5a2aa641b0 100644 (file)
@@ -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);
 }