mirror of https://github.com/proxmox/mirror_qemu
vnc: add buffer_free()
Add a buffer_free() helper to free vnc buffers and remove some duplicated code in vnc_disconnect_finish(). Signed-off-by: Corentin Chary <corentincj@iksaif.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>master
parent
78c98c7870
commit
5d418e3ba9
18
vnc.c
18
vnc.c
|
@ -508,6 +508,14 @@ void buffer_reset(Buffer *buffer)
|
||||||
buffer->offset = 0;
|
buffer->offset = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void buffer_free(Buffer *buffer)
|
||||||
|
{
|
||||||
|
qemu_free(buffer->buffer);
|
||||||
|
buffer->offset = 0;
|
||||||
|
buffer->capacity = 0;
|
||||||
|
buffer->buffer = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void buffer_append(Buffer *buffer, const void *data, size_t len)
|
void buffer_append(Buffer *buffer, const void *data, size_t len)
|
||||||
{
|
{
|
||||||
memcpy(buffer->buffer + buffer->offset, data, len);
|
memcpy(buffer->buffer + buffer->offset, data, len);
|
||||||
|
@ -961,14 +969,8 @@ static void vnc_disconnect_finish(VncState *vs)
|
||||||
{
|
{
|
||||||
vnc_qmp_event(vs, QEVENT_VNC_DISCONNECTED);
|
vnc_qmp_event(vs, QEVENT_VNC_DISCONNECTED);
|
||||||
|
|
||||||
if (vs->input.buffer) {
|
buffer_free(&vs->input);
|
||||||
qemu_free(vs->input.buffer);
|
buffer_free(&vs->output);
|
||||||
vs->input.buffer = NULL;
|
|
||||||
}
|
|
||||||
if (vs->output.buffer) {
|
|
||||||
qemu_free(vs->output.buffer);
|
|
||||||
vs->output.buffer = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
qobject_decref(vs->info);
|
qobject_decref(vs->info);
|
||||||
|
|
||||||
|
|
1
vnc.h
1
vnc.h
|
@ -382,6 +382,7 @@ void buffer_reserve(Buffer *buffer, size_t len);
|
||||||
int buffer_empty(Buffer *buffer);
|
int buffer_empty(Buffer *buffer);
|
||||||
uint8_t *buffer_end(Buffer *buffer);
|
uint8_t *buffer_end(Buffer *buffer);
|
||||||
void buffer_reset(Buffer *buffer);
|
void buffer_reset(Buffer *buffer);
|
||||||
|
void buffer_free(Buffer *buffer);
|
||||||
void buffer_append(Buffer *buffer, const void *data, size_t len);
|
void buffer_append(Buffer *buffer, const void *data, size_t len);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue