LJ_NOINLINE char *LJ_FASTCALL lj_buf_more2(SBuf *sb, MSize sz) { MSize len = sbuflen(sb); lua_assert(sz > sbufleft(sb)); if (LJ_UNLIKELY(sz > LJ_MAX_MEM || len + sz > LJ_MAX_MEM)) lj_err_mem(sbufL(sb)); buf_grow(sb, len + sz); return sbufP(sb); }
char *kp_buf_more(SBuf *sb, int sz) { char *b; int old_len = sbuflen(sb); if (sz > sbufleft(sb)) { b = realloc(sbufB(sb), sbuflen(sb) * 2); sb->b = b; sb->p = b + old_len; sb->e = b + old_len * 2; } return sbufP(sb); }