libpurple/protocols/demo/purpledemoprotocolactions.c

changeset 42291
a86b7bcbb471
parent 42204
56b8487d9020
child 42635
8bc965216427
--- a/libpurple/protocols/demo/purpledemoprotocolactions.c	Mon Aug 21 23:48:33 2023 -0500
+++ b/libpurple/protocols/demo/purpledemoprotocolactions.c	Tue Aug 22 00:24:14 2023 -0500
@@ -125,9 +125,14 @@
 
 	/* Do nothing if disconnected, or already in process of reaping. */
 	if(!PURPLE_IS_CONNECTION(connection)) {
+		g_clear_object(&account);
+
 		return;
 	}
+
 	if(g_object_get_data(G_OBJECT(connection), "reaping-time")) {
+		g_clear_object(&account);
+
 		return;
 	}
 
@@ -154,6 +159,8 @@
 	g_object_set_data(G_OBJECT(connection), "reaping-time",
 	                  GINT_TO_POINTER(DEFAULT_REAP_TIME));
 	g_timeout_add_seconds(1, cb, connection);
+
+	g_clear_object(&account);
 }
 
 static void
@@ -219,6 +226,7 @@
 	manager = purple_account_manager_get_default();
 	account = purple_account_manager_find_by_id(manager, account_id);
 	connection = purple_account_get_connection(account);
+	g_clear_object(&account);
 
 	/* Alternate through all four combinations of {masked, multiline}. */
 	masked = form % 2 == 1;
@@ -276,6 +284,7 @@
 	manager = purple_account_manager_get_default();
 	account = purple_account_manager_find_by_id(manager, account_id);
 	connection = purple_account_get_connection(account);
+	g_clear_object(&account);
 
 	purple_request_choice(connection, _("Request Choice Demo"),
 	                      _("Please pick an option…"), NULL, _("foo"),
@@ -314,6 +323,7 @@
 	manager = purple_account_manager_get_default();
 	account = purple_account_manager_find_by_id(manager, account_id);
 	connection = purple_account_get_connection(account);
+	g_clear_object(&account);
 
 	purple_request_action(connection, _("Request Action Demo"),
 	                      _("Please choose an action…"), NULL, 1,
@@ -372,6 +382,7 @@
 	manager = purple_account_manager_get_default();
 	account = purple_account_manager_find_by_id(manager, account_id);
 	connection = purple_account_get_connection(account);
+	g_clear_object(&account);
 
 	wait = g_new0(PurpleDemoProtocolWaitData, 1);
 
@@ -620,6 +631,8 @@
 	                      G_CALLBACK(purple_demo_protocol_request_fields_cancel_cb),
 	                      purple_request_cpar_from_connection(connection),
 	                      NULL);
+
+	g_clear_object(&account);
 }
 
 static void
@@ -656,6 +669,7 @@
 	manager = purple_account_manager_get_default();
 	account = purple_account_manager_find_by_id(manager, account_id);
 	connection = purple_account_get_connection(account);
+	g_clear_object(&account);
 
 	purple_request_file(connection, _("Request File Demo"),
 	                    "example.txt", FALSE,
@@ -685,6 +699,7 @@
 	manager = purple_account_manager_get_default();
 	account = purple_account_manager_find_by_id(manager, account_id);
 	connection = purple_account_get_connection(account);
+	g_clear_object(&account);
 
 	purple_request_folder(connection, _("Request Folder Demo"), NULL,
 	                      G_CALLBACK(purple_demo_protocol_request_path_ok_cb),
@@ -725,6 +740,8 @@
 	if(counter >= G_N_ELEMENTS(contacts)) {
 		counter = 0;
 	}
+
+	g_clear_object(&account);
 }
 
 /******************************************************************************

mercurial