From 1df0a982198b8bd8cec867708dd65b8b7373acee Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Thu, 9 Sep 2010 12:01:05 +0200 Subject: Use separate new/free functions for the handler context data --- libempathy/empathy-auth-factory.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'libempathy/empathy-auth-factory.c') diff --git a/libempathy/empathy-auth-factory.c b/libempathy/empathy-auth-factory.c index cfb33c4b3..fa2b7dcd1 100644 --- a/libempathy/empathy-auth-factory.c +++ b/libempathy/empathy-auth-factory.c @@ -55,6 +55,28 @@ typedef struct { EmpathyAuthFactory *self; } HandlerContextData; +static void +handler_context_data_free (HandlerContextData *data) +{ + tp_clear_object (&data->self); + tp_clear_object (&data->context); + + g_slice_free (HandlerContextData, data); +} + +static HandlerContextData * +handler_context_data_new (EmpathyAuthFactory *self, + TpHandleChannelsContext *context) +{ + HandlerContextData *data; + + data = g_slice_new0 (HandlerContextData); + data->self = g_object_ref (self); + data->context = g_object_ref (context); + + return data; +} + static void server_tls_handler_ready_cb (GObject *source, GAsyncResult *res, @@ -85,10 +107,7 @@ server_tls_handler_ready_cb (GObject *source, g_object_unref (handler); } - tp_clear_object (&data->context); - tp_clear_object (&data->self); - - g_slice_free (HandlerContextData, data); + handler_context_data_free (data); } static void @@ -142,10 +161,7 @@ handle_channels_cb (TpSimpleHandler *handler, } /* create a handler */ - data = g_slice_new0 (HandlerContextData); - data->context = g_object_ref (context); - data->self = g_object_ref (self); - + data = handler_context_data_new (self, context); tp_handle_channels_context_delay (context); empathy_server_tls_handler_new_async (channel, server_tls_handler_ready_cb, data); -- cgit v1.2.3