More selection related leaks
Here are a couple more selection related leaks. In order not to spam the issue tracker I'm putting all of them into a single report.
This one looks like it might be due to MetaDisplay::selection
not being cleared on shutdown, but I still have to confirm that:
==121227== 145 (48 direct, 97 indirect) bytes in 1 blocks are definitely lost in loss record 20,128 of 24,590
==121227== at 0x4CA1A0D: g_type_create_instance (gtype.c:1845)
==121227== by 0x4C8381E: g_object_new_internal (gobject.c:1923)
==121227== by 0x4C850BC: g_object_new_with_properties (gobject.c:2091)
==121227== by 0x4C85A68: g_object_new (gobject.c:1763)
==121227== by 0x58B0A92: meta_selection_source_memory_new (meta-selection-source-memory.c:125)
==121227== by 0x58AD0FF: owner_changed_cb (meta-clipboard-manager.c:146)
==121227== by 0x66C8AA7: ffi_call_unix64 (in /usr/lib64/libffi.so.6.0.2)
==121227== by 0x66C82A3: ffi_call (in /usr/lib64/libffi.so.6.0.2)
==121227== by 0x4C7E782: g_cclosure_marshal_generic (gclosure.c:1500)
==121227== by 0x4C7DF51: g_closure_invoke (gclosure.c:810)
==121227== by 0x4C914A4: signal_emit_unlocked_R (gsignal.c:3737)
==121227== by 0x4C9A8A4: g_signal_emit_valist (gsignal.c:3423)
The other two I have not really looked into yet:
==121227== 144 (80 direct, 64 indirect) bytes in 2 blocks are definitely lost in loss record 20,125 of 24,590
==121227== at 0x4CA1A0D: g_type_create_instance (gtype.c:1845)
==121227== by 0x4C8381E: g_object_new_internal (gobject.c:1923)
==121227== by 0x4C850BC: g_object_new_with_properties (gobject.c:2091)
==121227== by 0x4C85A68: g_object_new (gobject.c:1763)
==121227== by 0x58D6BE3: meta_x11_selection_handle_xfixes_selection_notify (meta-x11-selection.c:291)
==121227== by 0x58D6BE3: meta_x11_selection_handle_event (meta-x11-selection.c:330)
==121227== by 0x58CFCEB: process_selection_event (events.c:1735)
==121227== by 0x58CFCEB: meta_x11_display_handle_xevent (events.c:1802)
==121227== by 0x58CFCEB: xevent_filter (events.c:1909)
==121227== by 0x5CD0F5C: gdk_event_apply_filters (gdkeventsource.c:79)
==121227== by 0x5CD13B1: gdk_event_source_translate_event (gdkeventsource.c:198)
==121227== by 0x5CD13B1: _gdk_x11_display_queue_events (gdkeventsource.c:341)
==121227== by 0x5C71902: gdk_display_get_event (gdkdisplay.c:441)
==121227== by 0x5CD100A: gdk_event_source_dispatch (gdkeventsource.c:363)
==121227== by 0x4D17045: g_main_dispatch (gmain.c:3185)
==121227== by 0x4D17045: g_main_context_dispatch (gmain.c:3850)
==121227== by 0x4D1729F: g_main_context_iterate.isra.0 (gmain.c:3923)
==118569== 329 (184 direct, 145 indirect) bytes in 1 blocks are definitely lost in loss record 22,712 of 26,206
==118569== at 0x483980B: malloc (vg_replace_malloc.c:309)
==118569== by 0x4D1CC40: g_malloc (gmem.c:102)
==118569== by 0x4D34D84: g_slice_alloc (gslice.c:1024)
==118569== by 0x4D353E1: g_slice_alloc0 (gslice.c:1050)
==118569== by 0x4CA1A7B: g_type_create_instance (gtype.c:1849)
==118569== by 0x4C8381E: g_object_new_internal (gobject.c:1923)
==118569== by 0x4C850BC: g_object_new_with_properties (gobject.c:2091)
==118569== by 0x4C85A68: g_object_new (gobject.c:1763)
==118569== by 0x4B527BD: g_task_new (gtask.c:714)
==118569== by 0x58B0978: meta_selection_source_memory_read_async (meta-selection-source-memory.c:57)
==118569== by 0x58D6B69: meta_x11_selection_handle_selection_request (meta-x11-selection.c:219)
==118569== by 0x58D6B69: meta_x11_selection_handle_event (meta-x11-selection.c:328)
==118569== by 0x58CFCEB: process_selection_event (events.c:1735)
==118569== by 0x58CFCEB: meta_x11_display_handle_xevent (events.c:1802)
==118569== by 0x58CFCEB: xevent_filter (events.c:1909)