[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/19] buffer: make the Buffer capacity increase in
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 01/19] buffer: make the Buffer capacity increase in powers of two |
Date: |
Fri, 30 Oct 2015 12:09:56 +0100 |
From: Peter Lieven <address@hidden>
This makes sure the number of reallocs is in O(log N).
Signed-off-by: Peter Lieven <address@hidden>
[ rebased to util/buffer.c ]
Signed-off-by: Gerd Hoffmann <address@hidden>
---
util/buffer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/util/buffer.c b/util/buffer.c
index cedd055..7ddd693 100644
--- a/util/buffer.c
+++ b/util/buffer.c
@@ -20,10 +20,13 @@
#include "qemu/buffer.h"
+#define BUFFER_MIN_INIT_SIZE 4096
+
void buffer_reserve(Buffer *buffer, size_t len)
{
if ((buffer->capacity - buffer->offset) < len) {
- buffer->capacity += (len + 1024);
+ buffer->capacity = pow2ceil(buffer->offset + len);
+ buffer->capacity = MAX(buffer->capacity, BUFFER_MIN_INIT_SIZE);
buffer->buffer = g_realloc(buffer->buffer, buffer->capacity);
}
}
--
1.8.3.1
- [Qemu-devel] [PATCH 07/19] vnc: attach names to buffers, (continued)
- [Qemu-devel] [PATCH 07/19] vnc: attach names to buffers, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 02/19] buffer: add buffer_init, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 14/19] vnc: only alloc server surface with clients connected, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 16/19] vnc: recycle empty vs->output buffer, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 12/19] vnc: factor out vnc_update_server_surface, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 01/19] buffer: make the Buffer capacity increase in powers of two,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 11/19] vnc: add vnc_width+vnc_height helpers, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 15/19] vnc: fix local state init, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 06/19] buffer: add tracing, Gerd Hoffmann, 2015/10/30
- [Qemu-devel] [PATCH 09/19] vnc-jobs: move buffer reset, use new buffer move, Gerd Hoffmann, 2015/10/30
- Re: [Qemu-devel] [PATCH 00/19] buffer/vnc: improve vnc buffer hsndling, Daniel P. Berrange, 2015/10/30