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>
This commit is contained in:
Corentin Chary 2010-05-19 09:24:07 +02:00 committed by Anthony Liguori
parent 78c98c7870
commit 5d418e3ba9
2 changed files with 11 additions and 8 deletions

18
vnc.c
View File

@ -508,6 +508,14 @@ void buffer_reset(Buffer *buffer)
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)
{
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);
if (vs->input.buffer) {
qemu_free(vs->input.buffer);
vs->input.buffer = NULL;
}
if (vs->output.buffer) {
qemu_free(vs->output.buffer);
vs->output.buffer = NULL;
}
buffer_free(&vs->input);
buffer_free(&vs->output);
qobject_decref(vs->info);

1
vnc.h
View File

@ -382,6 +382,7 @@ void buffer_reserve(Buffer *buffer, size_t len);
int buffer_empty(Buffer *buffer);
uint8_t *buffer_end(Buffer *buffer);
void buffer_reset(Buffer *buffer);
void buffer_free(Buffer *buffer);
void buffer_append(Buffer *buffer, const void *data, size_t len);