• Bug#1034149: marked as done (unblock: glib2.0/2.74.6-2) (2/2)

    From Debian Bug Tracking System@21:1/5 to All on Wed Apr 12 19:10:01 2023
    [continued from previous message]

    g_source_set_static_name (idle_source, "[gio, " __FILE__ "] call_in_idle_cb");
    g_source_attach (idle_source, main_context);
    diff -Nru glib2.0-2.74.6/gio/gdbusinterfaceskeleton.c glib2.0-2.74.6/gio/gdbusinterfaceskeleton.c
    --- glib2.0-2.74.6/gio/gdbusinterfaceskeleton.c 2023-02-23 13:54:27.000000000 +0000
    +++ glib2.0-2.74.6/gio/gdbusinterfaceskeleton.c 2023-04-10 13:09:07.000000000 +0100
    @@ -461,16 +461,18 @@
    typedef struct
    {
    gint ref_count; /* (atomic) */
    - GDBusInterfaceSkeleton *interface;
    GDBusInterfaceMethodCallFunc method_call_func;
    - GDBusMethodInvocation *invocation;
    + GDBusMethodInvocation *invocation; /* (owned) */
    } DispatchData;

    static void
    dispatch_data_unref (DispatchData *data)
    {
    if (g_atomic_int_dec_and_test (&data->ref_count))
    - g_slice_free (DispatchData, data);
    + {
    + g_clear_object (&data->invocation);
    + g_slice_free (DispatchData, data);
    + }
    }

    static DispatchData *
    @@ -502,16 +504,17 @@
    GCancellable *cancellable)
    {
    DispatchData *data = task_data;
    + GDBusInterfaceSkeleton *interface = g_task_get_source_object (task);
    GDBusInterfaceSkeletonFlags flags;
    GDBusObject *object;
    gboo