gossip r2769 - in trunk: . src
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: gossip r2769 - in trunk: . src
- Date: Fri, 14 Mar 2008 17:26:09 +0000 (GMT)
Author: mr
Date: Fri Mar 14 17:26:08 2008
New Revision: 2769
URL: http://svn.gnome.org/viewvc/gossip?rev=2769&view=rev
Log:
Don't crash when GossipAccountChooser returns a NULL account
Modified:
trunk/ChangeLog
trunk/src/gossip-account-chooser.c
trunk/src/gossip-add-contact-dialog.c
trunk/src/gossip-log-window.c
trunk/src/gossip-new-chatroom-dialog.c
trunk/src/gossip-vcard-dialog.c
Modified: trunk/src/gossip-account-chooser.c
==============================================================================
--- trunk/src/gossip-account-chooser.c (original)
+++ trunk/src/gossip-account-chooser.c Fri Mar 14 17:26:08 2008
@@ -594,7 +594,7 @@
gossip_account_chooser_get_account (GossipAccountChooser *account_chooser)
{
GossipAccountChooserPriv *priv;
- GossipAccount *account;
+ GossipAccount *account = NULL;
GtkTreeModel *model;
GtkTreeIter iter;
@@ -603,9 +603,9 @@
priv = GET_PRIV (account_chooser);
model = gtk_combo_box_get_model (GTK_COMBO_BOX (account_chooser));
- gtk_combo_box_get_active_iter (GTK_COMBO_BOX (account_chooser), &iter);
-
- gtk_tree_model_get (model, &iter, COL_ACCOUNT_POINTER, &account, -1);
+ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (account_chooser), &iter)) {
+ gtk_tree_model_get (model, &iter, COL_ACCOUNT_POINTER, &account, -1);
+ }
return account;
}
Modified: trunk/src/gossip-add-contact-dialog.c
==============================================================================
--- trunk/src/gossip-add-contact-dialog.c (original)
+++ trunk/src/gossip-add-contact-dialog.c Fri Mar 14 17:26:08 2008
@@ -192,6 +192,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+ if (!account) {
+ return FALSE;
+ }
+
/* Make sure we aren't looking up the same ID or the example */
id = gtk_entry_get_text (GTK_ENTRY (dialog->entry_id));
example = gossip_jid_get_example_string ();
@@ -242,15 +246,10 @@
add_contact_dialog_account_chooser_changed_cb (GtkWidget *account_chooser,
GossipAddContactDialog *dialog)
{
- GossipAccount *account;
- const gchar *example;
-
- account = gossip_account_chooser_get_account (GOSSIP_ACCOUNT_CHOOSER (account_chooser));
+ const gchar *example;
example = gossip_jid_get_example_string ();
gtk_entry_set_text (GTK_ENTRY (dialog->entry_id), example);
-
- g_object_unref (account);
}
static void
@@ -333,15 +332,17 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
- id = gtk_entry_get_text (GTK_ENTRY (dialog->entry_id));
- name = gtk_entry_get_text (GTK_ENTRY (dialog->entry_alias));
- group = gtk_entry_get_text (GTK_ENTRY (dialog->entry_group));
-
- gossip_session_add_contact (gossip_app_get_session (),
- account,
- id, name, group, message);
-
- g_object_unref (account);
+ if (account) {
+ id = gtk_entry_get_text (GTK_ENTRY (dialog->entry_id));
+ name = gtk_entry_get_text (GTK_ENTRY (dialog->entry_alias));
+ group = gtk_entry_get_text (GTK_ENTRY (dialog->entry_group));
+
+ gossip_session_add_contact (gossip_app_get_session (),
+ account,
+ id, name, group, message);
+
+ g_object_unref (account);
+ }
}
gtk_widget_destroy (dialog->dialog);
Modified: trunk/src/gossip-log-window.c
==============================================================================
--- trunk/src/gossip-log-window.c (original)
+++ trunk/src/gossip-log-window.c Fri Mar 14 17:26:08 2008
@@ -779,6 +779,10 @@
selection = gtk_tree_view_get_selection (view);
store = GTK_LIST_STORE (model);
+ if (!account) {
+ return;
+ }
+
/* Block signals to stop the logs being retrieved prematurely */
g_signal_handlers_block_by_func (selection,
log_window_contacts_changed_cb,
@@ -1369,6 +1373,10 @@
selection = gtk_tree_view_get_selection (view);
store = GTK_LIST_STORE (model);
+ if (!account) {
+ return;
+ }
+
/* Block signals to stop the logs being retrieved prematurely */
g_signal_handlers_block_by_func (selection,
log_window_chatrooms_changed_cb,
@@ -1859,6 +1867,10 @@
gtk_list_store_clear (store);
+ if (!account) {
+ return;
+ }
+
gossip_debug (DEBUG_DOMAIN, "Getting links for %s%s...",
account ? "account " : "ALL accounts ",
account ? gossip_account_get_name (account) : "");
Modified: trunk/src/gossip-new-chatroom-dialog.c
==============================================================================
--- trunk/src/gossip-new-chatroom-dialog.c (original)
+++ trunk/src/gossip-new-chatroom-dialog.c Fri Mar 14 17:26:08 2008
@@ -159,8 +159,6 @@
static void
new_chatroom_dialog_update_buttons (GossipNewChatroomDialog *dialog)
{
- GossipAccount *account;
- GossipAccountChooser *account_chooser;
GtkButton *button;
GtkWidget *image;
GList *chatrooms;
@@ -176,10 +174,6 @@
const gchar *room;
const gchar *nick;
- /* Get account information */
- account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
- account = gossip_account_chooser_get_account (account_chooser);
-
/* Sort out Join button. */
button = GTK_BUTTON (dialog->button_join);
@@ -245,12 +239,6 @@
static void
new_chatroom_dialog_update_widgets (GossipNewChatroomDialog *dialog)
{
- GossipAccount *account;
- GossipAccountChooser *account_chooser;
-
- account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
- account = gossip_account_chooser_get_account (account_chooser);
-
new_chatroom_dialog_set_defaults (dialog);
new_chatroom_dialog_update_buttons (dialog);
@@ -661,6 +649,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+ if (!account) {
+ return;
+ }
+
nick = gossip_session_get_nickname (session, account);
if (nick) {
gtk_entry_set_text (GTK_ENTRY (dialog->entry_nick), nick);
@@ -718,6 +710,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+ if (!account) {
+ return;
+ }
+
provider = gossip_session_get_chatroom_provider (session, account);
/* Options */
@@ -880,6 +876,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+
+ if (!account) {
+ return;
+ }
provider = gossip_session_get_chatroom_provider (session, account);
@@ -925,6 +925,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+ if (!account) {
+ return;
+ }
+
provider = gossip_session_get_chatroom_provider (session, account);
/* FIXME: NEED API Here */
Modified: trunk/src/gossip-vcard-dialog.c
==============================================================================
--- trunk/src/gossip-vcard-dialog.c (original)
+++ trunk/src/gossip-vcard-dialog.c Fri Mar 14 17:26:08 2008
@@ -166,6 +166,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+ if (!account) {
+ return;
+ }
+
gossip_session_get_avatar_requirements (gossip_app_get_session (),
account,
&min_width, &min_height,
@@ -594,6 +598,10 @@
account_chooser = GOSSIP_ACCOUNT_CHOOSER (dialog->account_chooser);
account = gossip_account_chooser_get_account (account_chooser);
+ if (!account) {
+ return;
+ }
+
dialog->requesting_vcard = TRUE;
gossip_session_get_vcard (session,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]