--- a/pidgin/plugins/spellchk.c Sun Oct 23 18:46:44 2022 -0500
+++ b/pidgin/plugins/spellchk.c Thu Oct 27 20:34:02 2022 -0500
@@ -289,12 +289,14 @@
g_return_if_fail(spell != NULL);
- buffer = gtk_text_view_get_buffer(spell->view);
+ if (spell->view != NULL) { + buffer = gtk_text_view_get_buffer(spell->view); - g_signal_handlers_disconnect_matched(buffer,
+ g_signal_handlers_disconnect_matched(buffer, @@ -645,6 +647,7 @@
/* attach to the widget */
spell = g_new0(spellchk, 1);
+ g_object_add_weak_pointer(G_OBJECT(view), (gpointer*)&spell->view); g_object_set_data_full(G_OBJECT(view), SPELLCHK_OBJECT_KEY, spell,
(GDestroyNotify)spellchk_free);
@@ -2139,6 +2142,8 @@
spellchk *spell = g_object_get_data(G_OBJECT(gtkconv->entry), SPELLCHK_OBJECT_KEY);
g_signal_handlers_disconnect_by_func(gtkconv->entry, message_send_cb, spell);
+ g_object_remove_weak_pointer(G_OBJECT(gtkconv->entry), + (gpointer*)&spell->view); g_object_set_data(G_OBJECT(gtkconv->entry), SPELLCHK_OBJECT_KEY, NULL);