mirror of
https://github.com/msgpack/msgpack-python.git
synced 2026-02-07 10:19:51 +00:00
unpacker::unpacker() accepts initial buffer size
git-svn-id: file:///Users/frsyuki/project/msgpack-git/svn/x@82 5a5092ae-2292-43ba-b2d5-dcab9c1a2731
This commit is contained in:
parent
3398686816
commit
8be25a7f32
2 changed files with 10 additions and 10 deletions
|
|
@ -178,13 +178,14 @@ private:
|
|||
};
|
||||
|
||||
|
||||
unpacker::unpacker() :
|
||||
unpacker::unpacker(size_t initial_buffer_size) :
|
||||
m_buffer(NULL),
|
||||
m_used(0),
|
||||
m_free(0),
|
||||
m_off(0),
|
||||
m_zone(new zone()),
|
||||
m_ctx(new context(&*m_zone))
|
||||
m_ctx(new context(&*m_zone)),
|
||||
m_initial_buffer_size(initial_buffer_size)
|
||||
{ }
|
||||
|
||||
|
||||
|
|
@ -199,14 +200,14 @@ void unpacker::expand_buffer(size_t len)
|
|||
if(m_off == 0) {
|
||||
size_t next_size;
|
||||
if(m_used != 0) { next_size = (m_used + m_free) * 2; }
|
||||
else { next_size = UNPACKER_INITIAL_BUFFER_SIZE; }
|
||||
else { next_size = m_initial_buffer_size; }
|
||||
while(next_size < len + m_used) { next_size *= 2; }
|
||||
|
||||
m_buffer = m_zone->realloc(m_buffer, next_size);
|
||||
m_free = next_size - m_used;
|
||||
|
||||
} else {
|
||||
size_t next_size = UNPACKER_INITIAL_BUFFER_SIZE;
|
||||
size_t next_size = m_initial_buffer_size;
|
||||
while(next_size < len + m_used - m_off) { next_size *= 2; }
|
||||
|
||||
char* tmp = m_zone->malloc(next_size);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue