void knh_Bytes_putc(CTX ctx, knh_Bytes_t *ba, int ch) { size_t capacity = ba->dim->capacity; if(BA_size(ba) == capacity) { knh_Bytes_expands(ctx, ba, k_grow(capacity)); } ba->bu.ubuf[BA_size(ba)] = ch; BA_size(ba) += 1; }
void knh_Bytes_ensureSize(CTX ctx, knh_Bytes_t *ba, size_t len) { size_t blen = ba->bu.len + len; if(ba->dim->capacity < blen) { size_t newsize = k_grow(ba->dim->capacity); if(newsize < blen) newsize = k_goodsize(blen); knh_Bytes_expands(ctx, ba, newsize); } }
KNHAPI2(void) knh_Array_add_(CTX ctx, kArray *a, kObject *value) { size_t capacity = a->dim->capacity; if(a->size == capacity) { knh_Array_grow(ctx, a, k_grow(capacity), a->size + 1); } KNH_INITv(a->list[a->size], value); a->size++; }
static void Farray_addN(CTX ctx, kArray *a, ksfp_t *v) { size_t capacity = a->dim->capacity; if(!(a->size + 1 < capacity)) { knh_Array_grow(ctx, a, k_grow(a->size), a->size + 1); } a->nlist[a->size] = v[0].ndata; a->size += 1; }
static void Farray_addO(CTX ctx, kArray *a, ksfp_t *v) { size_t capacity = a->dim->capacity; if(!(a->size + 1 < capacity)) { knh_Array_grow(ctx, a, k_grow(a->size), a->size + 1); } KNH_INITv_withWB(a, a->list[a->size], v[0].o); a->size += 1; }
const char *knh_Bytes_ensureZero(CTX ctx, knh_Bytes_t *ba) { size_t size = BA_size(ba); size_t capacity = ba->dim->capacity; if(size == capacity) { knh_Bytes_expands(ctx, ba, k_grow(capacity)); } ba->bu.ubuf[BA_size(ba)] = 0; return ba->bu.text; }
void knh_Bytes_write(CTX ctx, knh_Bytes_t *ba, knh_bytes_t t) { size_t capacity = ba->dim->capacity; if(t.len == 0) return ; if(BA_size(ba) + t.len >= capacity) { size_t newsize = k_grow(capacity); if(newsize < BA_size(ba) + t.len) newsize = k_goodsize(BA_size(ba) + t.len); knh_Bytes_expands(ctx, ba, newsize); } knh_memcpy(ba->bu.ubuf + BA_size(ba), t.utext, t.len); BA_size(ba) += t.len; }
static void Farray_multiaddN(CTX ctx, kArray *a, ksfp_t *v) { size_t i, n = knh_stack_argc(ctx, v); size_t capacity = a->dim->capacity; if(!(a->size + n < capacity)) { knh_Array_grow(ctx, a, k_grow(a->size), a->size + n); } for(i = 0; i < n; i++) { a->nlist[a->size+i] = v[i].ndata; } a->size += n; }
static void Farray_multiaddO(CTX ctx, kArray *a, ksfp_t *v) { size_t i, n = knh_stack_argc(ctx, v); size_t capacity = a->dim->capacity; if(!(a->size + n < capacity)) { knh_Array_grow(ctx, a, k_grow(a->size), a->size + n); } for(i = 0; i < n; i++) { KNH_INITv_withWB(a, a->list[a->size+i], v[i].o); } a->size += n; }