about_me_destroy() frees the whole data structure and it tries to do the

right thing by setting "me = NULL" afterwards, but "me" in this case is
not the global variable, but the local one which shadows it. So the
global "me" remains non-NULL and when later about_me_focus_out() is
called, it cannot know it should return early.

It only makes sense for about_me_destroy() to operate on the global
"me", so there's no point in passing it as a parameter.
This commit is contained in:
Michal Schmidt 2010-03-23 19:28:37 +01:00 committed by Jens Granseuer
parent 601c160350
commit 41586c16b9

View file

@ -163,7 +163,7 @@ about_me_error (GtkWindow *parent, gchar *str)
/********************/
static void
about_me_destroy (GnomeAboutMe *me)
about_me_destroy (void)
{
e_contact_address_free (me->addr1);
e_contact_address_free (me->addr2);
@ -813,7 +813,7 @@ about_me_button_clicked_cb (GtkDialog *dialog, gint response_id, GnomeAboutMe *m
about_me_commit (me);
}
about_me_destroy (me);
about_me_destroy ();
gtk_main_quit ();
}
}
@ -855,7 +855,7 @@ about_me_setup_dialog (void)
gtk_container_add (GTK_CONTAINER (WID ("button-image")), me->image_chooser);
if (dialog == NULL) {
about_me_destroy (me);
about_me_destroy ();
return -1;
}
@ -890,7 +890,7 @@ about_me_setup_dialog (void)
about_me_error (NULL, _("There was an error while trying to get the addressbook information\n" \
"Evolution Data Server can't handle the protocol"));
g_clear_error (&error);
about_me_destroy (me);
about_me_destroy ();
return -1;
}