comparison pidgin/gtksmiley.c @ 29382:b066ad9bbcc3

Don't try to save the edit dialog pointer to a NULL PurpleSmiley (aka, when adding a new one).
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 07 Feb 2010 08:22:11 +0000
parents b1df98334930
children 9af18bfb16aa
comparison
equal deleted inserted replaced
29381:b1df98334930 29382:b066ad9bbcc3
72 static GSList *gtk_smileys = NULL; 72 static GSList *gtk_smileys = NULL;
73 73
74 static void 74 static void
75 pidgin_smiley_destroy(PidginSmiley *smiley) 75 pidgin_smiley_destroy(PidginSmiley *smiley)
76 { 76 {
77 g_object_set_data(G_OBJECT(smiley->smiley), "edit-dialog", NULL); 77 if (smiley->smiley)
78 g_object_set_data(G_OBJECT(smiley->smiley), "edit-dialog", NULL);
78 gtk_widget_destroy(smiley->parent); 79 gtk_widget_destroy(smiley->parent);
79 g_free(smiley->filename); 80 g_free(smiley->filename);
80 if (smiley->custom_pixbuf) 81 if (smiley->custom_pixbuf)
81 g_object_unref(G_OBJECT(smiley->custom_pixbuf)); 82 g_object_unref(G_OBJECT(smiley->custom_pixbuf));
82 g_free(smiley); 83 g_free(smiley);
401 GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, 402 GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
402 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 403 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
403 smiley ? GTK_STOCK_SAVE : GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, 404 smiley ? GTK_STOCK_SAVE : GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT,
404 NULL); 405 NULL);
405 s->parent = window; 406 s->parent = window;
406 g_object_set_data(G_OBJECT(smiley), "edit-dialog", window); 407 if (smiley)
408 g_object_set_data(G_OBJECT(smiley), "edit-dialog", window);
407 409
408 gtk_container_set_border_width(GTK_CONTAINER(window), PIDGIN_HIG_BORDER); 410 gtk_container_set_border_width(GTK_CONTAINER(window), PIDGIN_HIG_BORDER);
409 411
410 gtk_dialog_set_default_response(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT); 412 gtk_dialog_set_default_response(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT);
411 g_signal_connect(window, "response", G_CALLBACK(do_add_select_cb), s); 413 g_signal_connect(window, "response", G_CALLBACK(do_add_select_cb), s);