diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2015-10-30 12:09:59 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2015-11-05 09:08:39 +0100 |
commit | 830a9583206a051c240b74c3f688a015dc5d2967 (patch) | |
tree | 83bdc81fb50daf35dbfed83761fa232a1108eddf /util/buffer.c | |
parent | 4d1eb5fdb141c9100eb82e1dc7d4547fb1decd8b (diff) | |
download | qemu-830a9583206a051c240b74c3f688a015dc5d2967.zip qemu-830a9583206a051c240b74c3f688a015dc5d2967.tar.gz qemu-830a9583206a051c240b74c3f688a015dc5d2967.tar.bz2 |
buffer: add buffer_move
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1446203414-4013-5-git-send-email-kraxel@redhat.com
Diffstat (limited to 'util/buffer.c')
-rw-r--r-- | util/buffer.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/util/buffer.c b/util/buffer.c index c7a39ec..e8f798e 100644 --- a/util/buffer.c +++ b/util/buffer.c @@ -91,3 +91,19 @@ void buffer_move_empty(Buffer *to, Buffer *from) from->capacity = 0; from->buffer = NULL; } + +void buffer_move(Buffer *to, Buffer *from) +{ + if (to->offset == 0) { + buffer_move_empty(to, from); + return; + } + + buffer_reserve(to, from->offset); + buffer_append(to, from->buffer, from->offset); + + g_free(from->buffer); + from->offset = 0; + from->capacity = 0; + from->buffer = NULL; +} |