libpurple/prpl.c

branch
soc.2013.gobjectification.plugins
changeset 36487
725e37471387
parent 36465
3de2f1bf700b
child 36488
48c3419844f0
--- a/libpurple/prpl.c	Sat Aug 10 17:42:05 2013 +0530
+++ b/libpurple/prpl.c	Sat Aug 10 23:24:36 2013 +0530
@@ -620,13 +620,12 @@
 #endif
 }
 
-void
-purple_protocol_add_action(PurplePluginProtocolInfo *prpl_info,
-		const char* label, PurpleProtocolActionCallback callback)
+PurpleProtocolAction *
+purple_protocol_action_new(const char* label,
+		PurpleProtocolActionCallback callback)
 {
 	PurpleProtocolAction *action;
 
-	g_return_if_fail(prpl_info != NULL);
 	g_return_if_fail(label != NULL && callback != NULL);
 
 	action = g_new0(PurpleProtocolAction, 1);
@@ -634,7 +633,16 @@
 	action->label    = g_strdup(label);
 	action->callback = callback;
 
-	prpl_info->actions = g_list_append(prpl_info->actions, action);
+	return action;
+}
+
+void
+purple_protocol_action_free(PurpleProtocolAction *action)
+{
+	g_return_if_fail(action != NULL);
+
+	g_free(action->label);
+	g_free(action);
 }
 
 /**************************************************************************
@@ -671,13 +679,6 @@
 				g_list_delete_link(prpl_info->protocol_options,
 				prpl_info->protocol_options);
 	}
-
-	while (prpl_info->actions) {
-		PurpleProtocolAction *action = prpl_info->actions->data;
-		g_free(action->label);
-		prpl_info->actions = g_list_delete_link(prpl_info->actions,
-				prpl_info->actions);
-	}
 }
 
 PurplePluginProtocolInfo *

mercurial