diff options
author | Lennart Poettering <mznyfn@0pointer.de> | 2009-07-31 16:02:05 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-08-03 12:36:14 +0200 |
commit | 422958fa4b8101af842220a67e77c8090ad34a8b (patch) | |
tree | c826b2ceca95370ad4ef5f27fbefae6de1cd08d0 | |
parent | d2ea09f162f114480516a9d993d3d71bf357c835 (diff) |
pulse: unify destruction of snd_pulse_t
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | 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); } |