|Summary:||wl_data_device lacks destructor protocol, causes leaks|
|Product:||Wayland||Reporter:||Pekka Paalanen <ppaalanen>|
|Status:||RESOLVED FIXED||QA Contact:|
|i915 platform:||i915 features:|
Description Pekka Paalanen 2014-07-25 14:28:24 UTC
wl_data_device interface does not have a destructor defined in the protocol, which means that the server cannot know if a client destroys a wl_data_device object. This leaks the server-side resource. To make things worse, wl_data_device.data_offer *event* creates a new wl_data_offer protocol object. If a client has destroyed a wl_data_device, the server will not know about it, and will keep sending data_offer events as appropriate. As the client does not track the wl_data_device object anymore, those events will be ignored in the client. This means that in the server, wl_data_offer objects just keep piling up, as the server cannot destroy them on its own. If possible, we should add destructor protocol to wl_data_device interface.