[Telepathy-commits] [telepathy-salut/master] Fix error handling to not leak Gerrors
Sjoerd Simons
sjoerd.simons at collabora.co.uk
Mon Nov 3 04:35:31 PST 2008
---
lib/gibber/gibber-listener.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/lib/gibber/gibber-listener.c b/lib/gibber/gibber-listener.c
index 98a9ee5..85e29e2 100644
--- a/lib/gibber/gibber-listener.c
+++ b/lib/gibber/gibber-listener.c
@@ -338,10 +338,9 @@ listen_tcp_af (GibberListener *listener, int port,
gboolean fatal = !g_error_matches (terror, GIBBER_LISTENER_ERROR,
GIBBER_LISTENER_ERROR_FAMILY_NOT_SUPPORTED);
- if (error != NULL)
- *error = terror;
- else
- g_error_free (terror);
+ /* let error always point to the last error */
+ g_clear_error (error);
+ g_propagate_error (error, terror);
if (fatal)
goto error;
@@ -353,6 +352,9 @@ listen_tcp_af (GibberListener *listener, int port,
if (priv->listeners == NULL)
goto error;
+ /* There was an error at some point, but it was not fatal. ignore it */
+ g_clear_error (error);
+
if (*error != NULL)
{
/* There was an error at some point, but not fatal */
--
1.5.6.5
More information about the Telepathy-commits
mailing list