pidgin/pidgin

1f9db98e1e6c
Parents 63635ba9f117
Children b1cfab593952
Don't unref the an object we don't own a reference to

`purple_conversation_manager_find` is transfer none, so we only want to unref when we create a new conversation as the manager will add its own reference.

Testing Done:
Connected to libera with ircv3 and verified the crash was gone.

Reviewed at https://reviews.imfreedom.org/r/2175/
--- a/libpurple/protocols/ircv3/purpleircv3messagehandlers.c Thu Jan 05 21:10:24 2023 -0600
+++ b/libpurple/protocols/ircv3/purpleircv3messagehandlers.c Thu Jan 05 21:11:42 2023 -0600
@@ -121,6 +121,11 @@
purple_conversation_manager_register(conversation_manager,
conversation);
+
+ /* The manager creates its own reference on our new conversation, so we
+ * borrow it like we do above if it already exists.
+ */
+ g_object_unref(conversation);
}
if(purple_strequal(command, "NOTICE")) {
@@ -132,7 +137,6 @@
purple_conversation_write_message(conversation, message);
g_clear_object(&message);
- g_clear_object(&conversation);
return TRUE;
}