QObject::destroyed() is NEVER safe to connect with a queued connection. It's possible that an object is destroyed before its clients have the chance to act on the destroyed signal, resulting in keeping a dangling pointer.
In this case, this signal being connected incorrectly caused crashing on compositor restarts in Lomiri. This may have been the only time where a texture provider could be deleted before its clients. If it wasn't, though, this fix will be a good stability boost elsewhere.
QObject::destroyed() is NEVER safe to connect with a queued connection. It's possible that an object is destroyed before its clients have the chance to act on the destroyed signal, resulting in keeping a dangling pointer.
In this case, this signal being connected incorrectly caused crashing on compositor restarts in Lomiri. This may have been the only time where a texture provider could be deleted before its clients. If it wasn't, though, this fix will be a good stability boost elsewhere.