libpurple/protocols/jabber/si.c

branch
soc.2013.gobjectification
changeset 34940
c0aef3b64c56
parent 34935
686fa55b0deb
parent 34338
c652670afac5
child 34955
854143116575
child 36701
5acd461707ae
--- a/libpurple/protocols/jabber/si.c	Sat Sep 07 02:30:39 2013 +0530
+++ b/libpurple/protocols/jabber/si.c	Thu Sep 12 19:08:48 2013 +0530
@@ -1488,10 +1488,7 @@
 static void resource_select_ok_cb(PurpleXfer *xfer, PurpleRequestFields *fields)
 {
 	PurpleRequestField *field = purple_request_fields_get_field(fields, "resource");
-	int selected_id = purple_request_field_choice_get_value(field);
-	GList *labels = purple_request_field_choice_get_labels(field);
-
-	const char *selected_label = g_list_nth_data(labels, selected_id);
+	const char *selected_label = purple_request_field_choice_get_value(field);
 
 	do_transfer_send(xfer, selected_label);
 }
@@ -1561,9 +1558,11 @@
 			PurpleRequestField *field = purple_request_field_choice_new("resource", _("Resource"), 0);
 			PurpleRequestFieldGroup *group = purple_request_field_group_new(NULL);
 
+			purple_request_field_choice_set_data_destructor(field, g_free);
+
 			for(l = resources; l; l = l->next) {
 				jbr = l->data;
-				purple_request_field_choice_add(field, jbr->name);
+				purple_request_field_choice_add(field, jbr->name, g_strdup(jbr->name));
 			}
 
 			purple_request_field_group_add_field(group, field);
@@ -1572,7 +1571,7 @@
 
 			purple_request_fields(jsx->js->gc, _("Select a Resource"), msg, NULL, fields,
 					_("Send File"), G_CALLBACK(resource_select_ok_cb), _("Cancel"), G_CALLBACK(resource_select_cancel_cb),
-					purple_connection_get_account(jsx->js->gc), purple_xfer_get_remote_user(xfer), NULL, xfer);
+					purple_request_cpar_from_connection(jsx->js->gc), xfer);
 
 			g_free(msg);
 		}

mercurial