e2d46c574c
Summary: So far for internal cleanup we mostly listen to QObject::destroyed. When a Resource gets unbind the wl_resource is set to null and the Resource gets deleteLater. This creates a short time frame when the Resource is still there, but the wl_resource is null. For most internal usages the Resource is completely useless at that point and should no longer be considered. So far it was still considered and could hit crashers, if a code path did not nullptr check. Unfortunately libwayland-server is not nullptr safe: if called with a null value it tends to crash. So this check introduces a new signal unbound which can be listend to in addition to the destroyed signal. It's used in SeatInterface for DataDeviceInterface, where we experienced a crash related to that. A test case is added which exposes the crash, but it already needs the unbound signal to get into the crashy condition. The actual crash is fixed twice - with the help of the unbound signal, but also by introducing the nullptr check where it's needed. Reviewers: #plasma_on_wayland Subscribers: plasma-devel Tags: #plasma_on_wayland Differential Revision: https://phabricator.kde.org/D1868 |
||
---|---|---|
.. | ||
wayland |