diff options
Diffstat (limited to 'agent/agent.c')
-rw-r--r-- | agent/agent.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/agent/agent.c b/agent/agent.c index d89fffe..2fe07a1 100644 --- a/agent/agent.c +++ b/agent/agent.c @@ -5102,16 +5102,14 @@ nice_agent_dispose (GObject *object) g_slist_free (agent->local_addresses); agent->local_addresses = NULL; - for (i = agent->streams; i; i = i->next) - { - NiceStream *s = i->data; + while (agent->streams) { + NiceStream *s = agent->streams->data; - nice_stream_close (agent, s); - g_object_unref (s); - } + nice_stream_close (agent, s); + g_object_unref (s); - g_slist_free (agent->streams); - agent->streams = NULL; + agent->streams = g_slist_delete_link(agent->streams, agent->streams); + } while ((sig = g_queue_pop_head (&agent->pending_signals))) { free_queued_signal (sig); |