From: Matthias Clasen Date: Mon, 27 Sep 2021 20:38:32 +0000 (-0400) Subject: builder: Don't leak refs X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2^2~20 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=161259e9ea43d9bbbda19ecfe290a8e47288c47a;p=gtk4.git builder: Don't leak refs We sometimes end up setting an object on a GValue that we are then not interested in. We need to unset it, or we'll leak the ref. --- diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c index 9d85e6f2ed..81d4509256 100644 --- a/gtk/gtkbuilder.c +++ b/gtk/gtkbuilder.c @@ -617,16 +617,12 @@ gtk_builder_get_parameters (GtkBuilder *builder, continue; } - if (prop->pspec->flags & filter_flags) - { - if (filtered_parameters) - object_properties_add (filtered_parameters, property_name, &property_value); - } + if ((prop->pspec->flags & filter_flags) != 0 && filtered_parameters) + object_properties_add (filtered_parameters, property_name, &property_value); + else if ((prop->pspec->flags & filter_flags) == 0 && parameters) + object_properties_add (parameters, property_name, &property_value); else - { - if (parameters) - object_properties_add (parameters, property_name, &property_value); - } + g_value_unset (&property_value); } }