From patchwork Wed May 19 07:24:07 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v3,07/12] vnc: add buffer_free() From: Corentin Chary X-Patchwork-Id: 52960 Message-Id: <1274253852-16068-8-git-send-email-corentincj@iksaif.net> To: qemu-devel@nongnu.org Cc: Corentin Chary , Anthony Liguori , Alexander Graf , Adam Litke Date: Wed, 19 May 2010 09:24:07 +0200 Add a buffer_free() helper to free vnc buffers and remove some duplicated code in vnc_disconnect_finish(). Signed-off-by: Corentin Chary --- vnc.c | 18 ++++++++++-------- vnc.h | 1 + 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/vnc.c b/vnc.c index a5a0456..8f256b3 100644 --- a/vnc.c +++ b/vnc.c @@ -506,6 +506,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); @@ -911,14 +919,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); diff --git a/vnc.h b/vnc.h index b2d8738..abd9f27 100644 --- a/vnc.h +++ b/vnc.h @@ -376,6 +376,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);