changeset 18576:65aef3c97d3a

merge of '9b9534d8ba6b75ce9836ce0cd1ed8e086c0f89a0' and 'b7ac92fc2d2b33c1a09032dea60d13b74fe466b2'
author Luke Schierer <lschiere@pidgin.im>
date Fri, 20 Jul 2007 18:38:24 +0000
parents 7529effd3d35 (current diff) d767cd75d088 (diff)
children 2a431f30af2a
files
diffstat 3 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Fri Jul 20 18:35:13 2007 +0000
+++ b/COPYRIGHT	Fri Jul 20 18:38:24 2007 +0000
@@ -156,6 +156,7 @@
 Andy Harrison
 Andrew Hart (arhart)
 Rene Hausleitner
+Will Hawkins
 G. Sumner Hayes
 Michael R. Head
 Nick Hebner
--- a/libpurple/protocols/simple/simple.c	Fri Jul 20 18:35:13 2007 +0000
+++ b/libpurple/protocols/simple/simple.c	Fri Jul 20 18:38:24 2007 +0000
@@ -976,14 +976,16 @@
 
 		if(!isc) {
 			purple_debug_info("simple", "process_incoming_message: can not parse iscomposing\n");
+			g_free(from);
 			return;
 		}
 
 		state = xmlnode_get_child(isc, "state");
 
 		if(!state) {
-				purple_debug_info("simple", "process_incoming_message: no state found\n");
-				xmlnode_free(isc);
+			purple_debug_info("simple", "process_incoming_message: no state found\n");
+			xmlnode_free(isc);
+			g_free(from);
 			return;
 		}
 
@@ -1063,6 +1065,7 @@
 
 	if(!pidf) {
 		purple_debug_info("simple", "process_incoming_notify: no parseable pidf\n");
+		g_free(from);
 		return;
 	}
 
@@ -1073,6 +1076,7 @@
 	if(!basicstatus) {
 		purple_debug_info("simple", "process_incoming_notify: no basic found\n");
 		xmlnode_free(pidf);
+		g_free(from);
 		return;
 	}
 
@@ -1081,6 +1085,7 @@
 	if(!tmp2) {
 		purple_debug_info("simple", "process_incoming_notify: no basic data found\n");
 		xmlnode_free(pidf);
+		g_free(from);
 		return;
 	}
 
--- a/pidgin/gtkaccount.c	Fri Jul 20 18:35:13 2007 +0000
+++ b/pidgin/gtkaccount.c	Fri Jul 20 18:38:24 2007 +0000
@@ -504,7 +504,7 @@
 		/* Google Talk default domain hackery! */
 		menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
 		item = gtk_menu_get_active(GTK_MENU(menu));
-		if (value == NULL && g_object_get_data(G_OBJECT(item), "fake") && 
+		if (value == NULL && g_object_get_data(G_OBJECT(item), "fake") &&
 			!strcmp(purple_account_user_split_get_text(split), _("Domain")))
 			value = "gmail.com";
 
@@ -1814,6 +1814,10 @@
 static gint
 accedit_win_destroy_cb(GtkWidget *w, GdkEvent *event, AccountsWindow *dialog)
 {
+	/* Since this is called as the window is closing, we don't need
+	 * pidgin_accounts_window_hide() to also dispose of the window */
+	dialog->window = NULL;
+
 	pidgin_accounts_window_hide();
 
 	return 0;
@@ -1924,8 +1928,6 @@
 static void
 close_accounts_cb(GtkWidget *w, AccountsWindow *dialog)
 {
-	gtk_widget_destroy(dialog->window);
-
 	pidgin_accounts_window_hide();
 }
 
@@ -2401,6 +2403,9 @@
 	if (accounts_window == NULL)
 		return;
 
+	if (accounts_window->window != NULL)
+		gtk_widget_destroy(accounts_window->window);
+
 	purple_signals_disconnect_by_handle(accounts_window);
 	purple_prefs_disconnect_by_handle(accounts_window);