# HG changeset patch # User Jayson Vantuyl # Date 1235441098 28800 # Node ID bccdb423a8e90b55ac22b7e080b152fcfd916322 # Parent 96b31c822ab858f371adc69e493b1d416d790e8b Fixed Resolver Memory Management Issues (by creating less severe issues) diff -r 96b31c822ab8 -r bccdb423a8e9 loudmouth/lm-blocking-resolver.c --- a/loudmouth/lm-blocking-resolver.c Mon Feb 23 13:51:34 2009 -0800 +++ b/loudmouth/lm-blocking-resolver.c Mon Feb 23 18:04:58 2009 -0800 @@ -117,9 +117,11 @@ if (ans == NULL) { /* Couldn't find any results */ + g_object_ref (resolver); _lm_resolver_set_result (LM_RESOLVER (resolver), LM_RESOLVER_RESULT_FAILED, NULL); + g_object_unref (resolver); retval = FALSE; } @@ -127,12 +129,15 @@ /*priv->results = ans; priv->cur_result = ans; */ - g_object_ref (resolver); + if (retval) { + assert(ans->ai_family == AF_INET); + g_object_ref (resolver); - _lm_resolver_set_result (LM_RESOLVER (resolver), LM_RESOLVER_RESULT_OK, - ans); + _lm_resolver_set_result (LM_RESOLVER (resolver), LM_RESOLVER_RESULT_OK, + ans); - g_object_unref (resolver); + g_object_unref (resolver); + } g_free (host); diff -r 96b31c822ab8 -r bccdb423a8e9 loudmouth/lm-old-socket.c --- a/loudmouth/lm-old-socket.c Mon Feb 23 13:51:34 2009 -0800 +++ b/loudmouth/lm-old-socket.c Mon Feb 23 18:04:58 2009 -0800 @@ -772,8 +772,9 @@ if (socket->connect_func) { (socket->connect_func) (socket, FALSE, socket->user_data); } + /*FIXME: Leaking Resolvers Until Clean Up Can Be Properly Handled g_object_unref (socket->resolver); - socket->resolver = NULL; + socket->resolver = NULL;*/ g_free (socket->connect_data); socket->connect_data = NULL; @@ -933,10 +934,11 @@ g_free (data); } + /* FIXME: Leaking Resolvers Until Clean Up Can Be Corrected if (socket->resolver) { g_object_unref (socket->resolver); socket->resolver = NULL; - } + } */ if (socket->io_channel) { if (socket->watch_in) {