diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2011-03-22 15:08:41 +0000 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2011-03-22 15:13:38 +0000 |
commit | 901aca41915146f450842d7ab41071d5dd0e4f46 (patch) | |
tree | 07556c6cde95b4164669df044a46199cd15806e0 | |
parent | 018286b9c3f881fe35f2facfb5f52264dd99e231 (diff) |
meta-porter: ensure the ClosePorter closure if freed even if there are none to close
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
-rw-r--r-- | wocky/wocky-meta-porter.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/wocky/wocky-meta-porter.c b/wocky/wocky-meta-porter.c index 19f166e..e3a8d5f 100644 --- a/wocky/wocky-meta-porter.c +++ b/wocky/wocky-meta-porter.c @@ -1282,6 +1282,7 @@ close_all_porters (WockyMetaPorter *self, WockyMetaPorterPrivate *priv = self->priv; GSimpleAsyncResult *simple; GList *porters, *l; + gboolean close_called = FALSE; porters = g_hash_table_get_values (priv->porters); @@ -1306,12 +1307,18 @@ close_all_porters (WockyMetaPorter *self, continue; data->remaining++; + close_called = TRUE; close_async_func (porter_data->porter, cancellable, porter_close_cb, data); } + + /* Actually, none of the PorterData structs had C2S porters */ + if (!close_called) + g_slice_free (ClosePorterData, data); } - else + + if (!close_called) { /* there were no porters to close anyway */ g_simple_async_result_complete (simple); |