# QDBus doesn't call dbus_shutdown, so some D-Bus internal data structures are leaked.
# We never call any low-level dbus message creation functions ourselves - if there are leaks,
# they're either caused by not calling dbus_shutdown, QDBus bugs or libdbus bugs - neither of which
# are our problem.

{
    Initial session bus registration message
    Memcheck:Leak
    fun:malloc
    fun:dbus_message_new_empty_header
}

# The conference test CM channel object leaks some crazy GValue boxed data which I don't have the
# energy to investigate how to properly free now - it's not production code anyway.

{
   Conference test CM channel boxed GValue data
   Memcheck:Leak
   ...
   fun:g_boxed_copy
   ...
   fun:_ZN18TestConferenceChan12initTestCaseEv
}

# Reported as https://bugs.freedesktop.org/show_bug.cgi?id=32116

{
    TpBaseConnectionManager legacy protocol objects
    Memcheck:Leak
    ...
    fun:g_object_new
    ...
    fun:tp_base_connection_manager_register
}

# O(number of error domains) leak from dbus_g_method_return_error
{
    dbus_g_method_return_error error domain enum class
    Memcheck:Leak
    ...
    fun:g_type_class_ref
    ...
    fun:dbus_g_method_return_error
}

# O(1) leak from tp_base_connection_manager installing the param spec for the dbus-daemon param
{
    tp_base_connection_manager dbus-daemon param spec
    Memcheck:Leak
    ...
    fun:g_param_spec_object
    fun:tp_base_connection_manager_class_intern_init
}
