When the last clipboard peer unregisters, the vm change state handler
is left dangling. Remove it to avoid stale callbacks after all peers
are gone.
Fixes: c967ff606b99 ("ui/clipboard: delay clipboard update when not running")
Reported-by: Pavee Hui <[email protected]>
Signed-off-by: Marc-André Lureau <[email protected]>
---
ui/clipboard.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/ui/clipboard.c b/ui/clipboard.c
index e3d8a31ba9f7..46e602dfef43 100644
--- a/ui/clipboard.c
+++ b/ui/clipboard.c
@@ -76,6 +76,10 @@ void qemu_clipboard_peer_unregister(QemuClipboardPeer *peer)
qemu_clipboard_peer_release(peer, i);
}
notifier_remove(&peer->notifier);
+ if (QLIST_EMPTY(&clipboard_notifiers.notifiers)) {
+ g_clear_pointer(&cb_change_state_entry,
+ qemu_del_vm_change_state_handler);
+ }
}
bool qemu_clipboard_peer_owns(QemuClipboardPeer *peer,
--
2.56.0.rc0.29.g47ce80527c56