libpurple/request.c

changeset 34332
876483829700
parent 34331
c8486462bb63
child 34333
b92698241603
--- a/libpurple/request.c	Tue Sep 10 21:47:37 2013 +0200
+++ b/libpurple/request.c	Tue Sep 10 22:32:40 2013 +0200
@@ -1783,7 +1783,9 @@
 {
 	PurpleRequestUiOps *ops;
 
-	if (G_UNLIKELY(ok_text != NULL || ok_cb != NULL || cancel_text != NULL)) {
+	if (G_UNLIKELY(ok_text != NULL || ok_cb != NULL ||
+		cancel_text != NULL))
+	{
 		purple_request_cpar_unref(cpar);
 		g_return_val_if_reached(NULL);
 	}
@@ -1848,26 +1850,28 @@
 
 		handles = g_list_append(handles, info);
 
+		purple_request_cpar_unref(cpar);
 		return info->ui_handle;
 	}
 
+	purple_request_cpar_unref(cpar);
 	return NULL;
 }
 
 void *
 purple_request_fields(void *handle, const char *title, const char *primary,
-					const char *secondary, PurpleRequestFields *fields,
-					const char *ok_text, GCallback ok_cb,
-					const char *cancel_text, GCallback cancel_cb,
-					PurpleAccount *account, const char *who, PurpleConversation *conv,
-					void *user_data)
+	const char *secondary, PurpleRequestFields *fields, const char *ok_text,
+	GCallback ok_cb, const char *cancel_text, GCallback cancel_cb,
+	PurpleRequestCommonParameters *cpar, void *user_data)
 {
 	PurpleRequestUiOps *ops;
 
-	g_return_val_if_fail(fields  != NULL, NULL);
-	g_return_val_if_fail(ok_text != NULL, NULL);
-	g_return_val_if_fail(ok_cb   != NULL, NULL);
-	g_return_val_if_fail(cancel_text != NULL, NULL);
+	if (G_UNLIKELY(fields != NULL || ok_text != NULL || ok_cb != NULL ||
+		cancel_text != NULL))
+	{
+		purple_request_cpar_unref(cpar);
+		g_return_val_if_reached(NULL);
+	}
 
 	ops = purple_request_get_ui_ops();
 
@@ -1878,16 +1882,16 @@
 		info->type      = PURPLE_REQUEST_FIELDS;
 		info->handle    = handle;
 		info->ui_handle = ops->request_fields(title, primary, secondary,
-											  fields, ok_text, ok_cb,
-											  cancel_text, cancel_cb,
-											  account, who, conv,
-											  user_data);
+			fields, ok_text, ok_cb, cancel_text, cancel_cb,
+			cpar, user_data);
 
 		handles = g_list_append(handles, info);
 
+		purple_request_cpar_unref(cpar);
 		return info->ui_handle;
 	}
 
+	purple_request_cpar_unref(cpar);
 	return NULL;
 }
 
@@ -1965,7 +1969,7 @@
 
 	return purple_request_fields(handle, title, primary, secondary, fields,
 	                             ok_text, ok_cb, cancel_text, cancel_cb,
-	                             NULL, NULL, NULL, user_data);
+	                             NULL, user_data);
 }
 
 static void

mercurial