mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
ui/vdagent: Use VMSTATE_GBYTEARRAY to safely migrate outbuf
Migrating a GLib GByteArray is now possible directly using the newly introduced VMSTATE_GBYTEARRAY. It uses the standard GLib API calls to create the array, or resize it. This is safer than implementing a C struct and manually updating the data and len fields. This commit uses the VMSTATE_GBYTEARRAY in vdagent to store the outbuf variable. Signed-off-by: Arun Menon <armenon@redhat.com> Suggested-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260423105733.113046-3-armenon@redhat.com Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
This commit is contained in:
committed by
Stefan Berger
parent
1d9688c074
commit
fc6ff3198e
13
ui/vdagent.c
13
ui/vdagent.c
@@ -964,17 +964,6 @@ static const VMStateDescription vmstate_chunk = {
|
||||
}
|
||||
};
|
||||
|
||||
static const VMStateDescription vmstate_vdba = {
|
||||
.name = "vdagent/bytearray",
|
||||
.version_id = 0,
|
||||
.minimum_version_id = 0,
|
||||
.fields = (const VMStateField[]) {
|
||||
VMSTATE_UINT32(len, GByteArray),
|
||||
VMSTATE_VBUFFER_ALLOC_UINT32(data, GByteArray, 0, 0, len),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
||||
struct CBInfoArray {
|
||||
uint32_t n;
|
||||
QemuClipboardInfo cbinfo[QEMU_CLIPBOARD_SELECTION__COUNT];
|
||||
@@ -1064,7 +1053,7 @@ static const VMStateDescription vmstate_vdagent = {
|
||||
VMSTATE_UINT32(xsize, VDAgentChardev),
|
||||
VMSTATE_UINT32(xoff, VDAgentChardev),
|
||||
VMSTATE_VBUFFER_ALLOC_UINT32(xbuf, VDAgentChardev, 0, 0, xsize),
|
||||
VMSTATE_STRUCT_POINTER(outbuf, VDAgentChardev, vmstate_vdba, GByteArray),
|
||||
VMSTATE_GBYTEARRAY(outbuf, VDAgentChardev, 0),
|
||||
VMSTATE_UINT32(mouse_x, VDAgentChardev),
|
||||
VMSTATE_UINT32(mouse_y, VDAgentChardev),
|
||||
VMSTATE_UINT32(mouse_btn, VDAgentChardev),
|
||||
|
||||
Reference in New Issue
Block a user