Re: Memory leak in gdbus-codegen generated code

On Tue, 2015-02-10 at 00:32 +0900, Tristan Van Berkom wrote:
On Mon, 2015-02-09 at 15:05 +0000, Norman, Anders wrote:
But the application ends up leaking the signal generated in `dbus_foo_default_init()` which looks like 

    static void
    dbus_foo_default_init (DbusFooIface *iface)
      /* GObject signals for incoming D-Bus method calls: */
       * DbusFoo::handle-bar:
       * @object: A #DbusFoo.
       * @invocation: A #GDBusMethodInvocation.
       * Signal emitted when a remote caller is invoking the <link 
linkend="gdbus-method-com-example-foo.Bar">Bar()</link> D-Bus method.
       * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. 
take a reference to @invocation and eventually call dbus_foo_complete_bar() or e.g. 
g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal 
handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
       * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
      g_signal_new ("handle-bar",
        G_TYPE_FROM_INTERFACE (iface),
        G_STRUCT_OFFSET (DbusFooIface, handle_bar),


Am I using the generated code wrong or is it a bug in glib/gdbus-codegen?

This is not considered a leak, a signal connection leaking would be a
leak, but a signal declaration as such, is expected to be kept with the
statically registered GTypeInstance.

Err, I should have just said GType, the GTypeInstance is indeed instance
data and freed with every object, sorry for the confusion.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]