agent: Ensure the pending signal queue is cleared on dispose
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Wed, 5 Mar 2014 10:45:00 +0000 (10:45 +0000)
committerOlivier CrĂȘte <olivier.crete@collabora.com>
Thu, 6 Mar 2014 21:14:10 +0000 (16:14 -0500)
agent/agent.c

index 3c22959..d026bc5 100644 (file)
@@ -3649,6 +3649,7 @@ static void
 nice_agent_dispose (GObject *object)
 {
   GSList *i;
+  QueuedSignal *sig;
   NiceAgent *agent = NICE_AGENT (object);
 
   /* step: free resources for the binding discovery timers */
@@ -3682,6 +3683,10 @@ nice_agent_dispose (GObject *object)
   g_slist_free (agent->streams);
   agent->streams = NULL;
 
+  while ((sig = g_queue_pop_head (&agent->pending_signals))) {
+    free_queued_signal (sig);
+  }
+
   g_free (agent->stun_server_ip);
   agent->stun_server_ip = NULL;