--- a/libpurple/request.c Fri Mar 03 01:11:06 2023 -0600
+++ b/libpurple/request.c Fri Mar 03 01:22:08 2023 -0600
@@ -161,10 +161,7 @@
-struct _PurpleRequestCommonParameters
+struct _PurpleRequestCommonParameters { PurpleConversation *conv;
@@ -190,7 +187,7 @@
PurpleRequestCommonParameters *
purple_request_cpar_new(void)
- return g_new0(PurpleRequestCommonParameters, 1);
+ return g_rc_box_new0(PurpleRequestCommonParameters); PurpleRequestCommonParameters *
@@ -236,21 +233,23 @@
g_return_if_fail(cpar != NULL);
+ g_rc_box_acquire(cpar); -PurpleRequestCommonParameters *
+purple_request_cpar_destroy(PurpleRequestCommonParameters *cpar) { + g_slist_free_full(cpar->extra_actions, + (GDestroyNotify)purple_key_value_pair_free); purple_request_cpar_unref(PurpleRequestCommonParameters *cpar)
- if (--cpar->ref_count > 0)
- purple_request_cpar_set_extra_actions(cpar, NULL);
+ g_rc_box_release_full(cpar, (GDestroyNotify)purple_request_cpar_destroy); --- a/libpurple/request.h Fri Mar 03 01:11:06 2023 -0600
+++ b/libpurple/request.h Fri Mar 03 01:22:08 2023 -0600
@@ -333,10 +333,8 @@
* Decreases the reference count on the parameters set.
* The object will be destroyed when this reaches 0.
- * Returns: (transfer full): The NULL, if object was destroyed, cpar otherwise.
-PurpleRequestCommonParameters *
purple_request_cpar_unref(PurpleRequestCommonParameters *cpar);