From: Olivier CrĂȘte Date: Sat, 15 Mar 2014 03:52:45 +0000 (-0400) Subject: agent: Create a custom pointer GType to recognize the stream ids X-Git-Tag: 0.1.6~84 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8ae52ea3c9616f040e8da9803fdaf7c7ac3a066a;p=platform%2Fupstream%2Flibnice.git agent: Create a custom pointer GType to recognize the stream ids --- diff --git a/agent/agent.c b/agent/agent.c index 425305b..fea3921 100644 --- a/agent/agent.c +++ b/agent/agent.c @@ -158,6 +158,12 @@ void agent_unlock(void) #endif +static GType _nice_agent_stream_ids_get_type (void); + +G_DEFINE_POINTER_TYPE (_NiceAgentStreamIds, _nice_agent_stream_ids); + +#define NICE_TYPE_AGENT_STREAM_IDS _nice_agent_stream_ids_get_type () + typedef struct { guint signal_id; GSignalQuery query; @@ -171,9 +177,9 @@ free_queued_signal (QueuedSignal *sig) guint i; for (i = 0; i < sig->query.n_params; i++) { - if (G_VALUE_HOLDS_POINTER (&sig->params[i])) g_free (g_value_get_pointer (&sig->params[i])); g_value_unset (&sig->params[i]); + if (G_VALUE_HOLDS(&sig->params[i + 1], NICE_TYPE_AGENT_STREAM_IDS)) } g_slice_free1 (sizeof(GValue) * (sig->query.n_params + 1), sig->params); @@ -771,7 +777,7 @@ nice_agent_class_init (NiceAgentClass *klass) g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, - G_TYPE_POINTER, + NICE_TYPE_AGENT_STREAM_IDS, G_TYPE_INVALID); /* Init debug options depending on env variables */ @@ -2378,7 +2384,8 @@ nice_agent_remove_stream ( if (!agent->streams) priv_remove_keepalive_timer (agent); - agent_queue_signal (agent, signals[SIGNAL_STREAMS_REMOVED], stream_ids); + agent_queue_signal (agent, signals[SIGNAL_STREAMS_REMOVED], + g_memdup (stream_ids, sizeof(stream_ids))); agent_unlock_and_emit (agent); return;