# hide GObject type init allocs, they can only happen once and are not really # leaks { type_init Memcheck:Leak fun:*alloc ... fun:g_type_register_* } { type_init2 Memcheck:Leak fun:*alloc ... fun:g_type_init_* } { type_init3 Memcheck:Leak fun:*alloc ... fun:g_type_create_* } { type_init4 Memcheck:Leak fun:*alloc ... fun:g_type_class_ref } { type_init5 Memcheck:Leak fun:*alloc ... fun:g_type_add_interface_static } # module init does this { init7 Memcheck:Leak ... fun:*alloc* ... fun:_dl_init } # g_get_home_dir has a private buffer { gwd Memcheck:Leak fun:*alloc ... fun:g_get_home_dir } # selinux on ubuntu generates a leak report we ignore { selinux Memcheck:Leak fun:*alloc ... obj:/lib/libselinux.so.1 } # gdk and x init { gdk_init Memcheck:Leak fun:*alloc ... fun:gdk_display_open } { x_init_ext Memcheck:Leak fun:*alloc ... fun:XInitExtension } { gio Memcheck:Leak fun:malloc ... fun:g_simple_async_result_complete } { pthread Memcheck:Leak fun:calloc ... fun:_dl_allocate_tls ... fun:pthread_create@@GLIBC_* } # hide all dbus reports, not the app's problem { dbus Memcheck:Leak fun:*alloc ... obj:*/libdbus-1.so.* } # hide all orbit leaks, not our problem { orbit Memcheck:Leak fun:*alloc ... fun:ORBit_* } # other lib init { fontconfig_init Memcheck:Leak fun:*alloc ... fun:FcConfigParseAndLoad } { fontconfig2 Memcheck:Leak fun:malloc fun:strdup fun:FcValueSave obj:*/libfontconfig.so.* } { fontconfig3 Memcheck:Leak fun:realloc ... fun:FcFontMatch } { fontconfig4 Memcheck:Leak fun:realloc ... fun:FcPatternAddInteger } { fontconfig5 Memcheck:Leak fun:realloc ... fun:FcPatternDuplicate } { fontconfig6 Memcheck:Leak fun:realloc ... fun:FcDefaultSubstitute } { freetype_init Memcheck:Leak fun:*alloc ... fun:FT_Open_Face } { harfbuzz Memcheck:Leak fun:calloc ... fun:hb_shape_plan_execute } { goffice_init Memcheck:Leak fun:*alloc ... fun:libgoffice_init } { g_module_init Memcheck:Leak fun:*alloc ... fun:g_module_open } { gtk_module_init Memcheck:Leak fun:*alloc ... fun:gtk_module_init } # gdk-x11 makes a toplevel object { gdk_x11_init Memcheck:Leak fun:*alloc ... fun:_gdk_x11_window_get_toplevel } # the icon theme allocates stuff on lazy load { gtk_icon_theme_has_icon Memcheck:Leak fun:*alloc ... fun:gtk_icon_theme_has_icon } # tooltip labels are not really owned by anyone and will not be freed on exit { gtk_tooltip_set_markup Memcheck:Leak fun:*alloc ... fun:gtk_tooltip_set_markup } # pango makes a PangoLanguage for every script you use { pango_language Memcheck:Leak fun:*alloc ... fun:pango_language_from_string } # pango makes a PangoOTRuleset for every font you use { pango_ot_ruleset_get_for_description Memcheck:Leak fun:*alloc ... fun:pango_ot_ruleset_get_for_description } # pango makes a PangoOTInfo for every font you use { pango_ot_info_get Memcheck:Leak fun:*alloc ... fun:pango_ot_info_get } # fonts pango has loaded { pango_fc_fontset_get_font_at Memcheck:Leak fun:*alloc ... fun:pango_fc_fontset_get_font_at } # font maps pango has loaded { pango_fc_font_map_load_fontset Memcheck:Leak fun:*alloc ... fun:pango_fc_font_map_load_fontset } # ... and font descriptions from every "sans 12" type string { pango_font_description_from_string Memcheck:Leak fun:*alloc ... fun:pango_font_description_from_string } # gettext has annoying uninit warnings { gettext Memcheck:Cond fun:__GI___strcasecmp_l ... fun:__dcigettext } { gettext Memcheck:Value8 fun:__GI___strcasecmp_l ... fun:__dcigettext } # libz has a warning too ... see this from libpng / libxml2 etc. { libz Memcheck:Cond fun:inflateReset2 } # libvips can generate this one spuriously { libvipswrite Memcheck:Param write(buf) ... fun:write_vips } { pixman1 Memcheck:Cond ... fun:pixman_image_composite32 } { cairo1 Memcheck:Cond fun:rsvg_cairo_surface_to_pixbuf } { rsvg Memcheck:Cond obj:*/librsvg-2.so.* } { murrine Memcheck:Leak fun:calloc fun:g_malloc0 fun:raico_blur_create } { signal_connect Memcheck:Leak fun:calloc fun:g_malloc0 fun:g_closure_new_simple fun:g_cclosure_new fun:g_signal_connect_data } # ruby has some annoying ones too { ruby1 Memcheck:Cond ... fun:rb_parser_compile_file } { ruby2 Memcheck:Value8 ... fun:rb_parser_compile_file } { ruby3 Memcheck:Cond ... fun:rb_file_expand_path } { ruby4 Memcheck:Value8 ... fun:rb_file_expand_path } { ruby5 Memcheck:Value8 ... fun:rb_enc_str_new } # helgrind stuff ... run against glib-2.40.x or earlier, later glibs have # their own mutex primitive which helgrind can't see { helgrind1 Helgrind:Race fun:g_thread_proxy ... fun:start_thread fun:clone } { helgrind2 Helgrind:Race fun:strlen fun:pthread_setname_np fun:g_system_thread_set_name fun:g_thread_proxy ... fun:start_thread fun:clone } # there's an unlocked assign FALSE which is fine { helgrind3 Helgrind:Race fun:vips_region_prepare_to } # unlocked read of pixels-processed-so-far, which is fine { helgrind4 Helgrind:Race fun:vips_sink_base_progress } { helgrind4a Helgrind:Race fun:wbuffer_allocate_fn } # helgrind can't see g_private { helgrind5 Helgrind:Race fun:g_private_set } # use of *stop from generate funcs is unlocked, but fine { helgrind6 Helgrind:Race fun:vips_threadpool_run }