mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
add gu_buf_insert in libgu
This commit is contained in:
@@ -201,6 +201,20 @@ gu_buf_freeze(GuBuf* buf, GuPool* pool)
|
|||||||
return seq;
|
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
|
static void
|
||||||
gu_quick_sort(GuBuf *buf, GuOrder *order, int left, int right)
|
gu_quick_sort(GuBuf *buf, GuOrder *order, int left, int right)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -102,6 +102,9 @@ gu_buf_trim_n(GuBuf* buf, size_t n_elems);
|
|||||||
const void*
|
const void*
|
||||||
gu_buf_trim(GuBuf* buf);
|
gu_buf_trim(GuBuf* buf);
|
||||||
|
|
||||||
|
void*
|
||||||
|
gu_buf_insert(GuBuf* buf, size_t n_index);
|
||||||
|
|
||||||
void
|
void
|
||||||
gu_buf_flush(GuBuf* buf);
|
gu_buf_flush(GuBuf* buf);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user