1
0
forked from GitHub/gf-core

add gu_buf_insert in libgu

This commit is contained in:
kr.angelov
2013-11-18 09:05:09 +00:00
parent a6d60f9c8d
commit edb4f7320d
2 changed files with 17 additions and 0 deletions

View File

@@ -201,6 +201,20 @@ gu_buf_freeze(GuBuf* buf, GuPool* pool)
return seq;
}
void*
gu_buf_insert(GuBuf* buf, size_t index)
{
size_t len = buf->seq->len;
gu_buf_require(buf, len + 1);
uint8_t* target =
buf->seq->data + buf->elem_size * index;
memmove(target+buf->elem_size, target, (len-index)*buf->elem_size);
buf->seq->len++;
return target;
}
static void
gu_quick_sort(GuBuf *buf, GuOrder *order, int left, int right)
{

View File

@@ -102,6 +102,9 @@ gu_buf_trim_n(GuBuf* buf, size_t n_elems);
const void*
gu_buf_trim(GuBuf* buf);
void*
gu_buf_insert(GuBuf* buf, size_t n_index);
void
gu_buf_flush(GuBuf* buf);