From: Emmanuele Bassi Date: Thu, 26 Mar 2020 17:11:25 +0000 (+0000) Subject: Return a full reference when parsing triggers X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~19^2~24^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=96ccb25f97ab2fd2ec08d11dfe5d281764a732f2;p=gtk4.git Return a full reference when parsing triggers We're not returning a full reference for GtkNeverTrigger, but we are returning full references for mnemonic and keyval triggers; this means we're either going to leak mnemonic and keyval triggers if we consider this function a "transfer none" one, or we are going to trigger an assertion failure when finalizing a never trigger, if we consider this function a "transfer full" one. Let's be consistent, and always return a full reference to the caller. --- diff --git a/gtk/gtkshortcuttrigger.c b/gtk/gtkshortcuttrigger.c index 50f6958b18..fc36e809e5 100644 --- a/gtk/gtkshortcuttrigger.c +++ b/gtk/gtkshortcuttrigger.c @@ -121,7 +121,8 @@ gtk_shortcut_trigger_trigger (GtkShortcutTrigger *self, * - a string parsed by gtk_accelerator_parse(), for a #GtkKeyvalTrigger * - underscore, followed by a single character, for #GtkMnemonicTrigger * - * Returns: (nullable): a new #GtkShortcutTrigger or %NULL on error + * Returns: (nullable) (transfer full): a new #GtkShortcutTrigger + * or %NULL on error */ GtkShortcutTrigger * gtk_shortcut_trigger_parse_string (const char *string) @@ -132,7 +133,7 @@ gtk_shortcut_trigger_parse_string (const char *string) g_return_val_if_fail (string != NULL, NULL); if (g_str_equal (string, "never")) - return gtk_never_trigger_get (); + return g_object_ref (gtk_never_trigger_get ()); if (string[0] == '_') {