String buffers, part 2a: internal SBuf reorg. Use full pointers.
Sponsored by fmad.io.
This commit is contained in:
@@ -1465,7 +1465,7 @@ static size_t fs_prep_var(LexState *ls, FuncState *fs, size_t *ofsvar)
|
||||
MSize len = s->len+1;
|
||||
char *p = lj_buf_more(&ls->sb, len);
|
||||
p = lj_buf_wmem(p, strdata(s), len);
|
||||
setsbufP(&ls->sb, p);
|
||||
ls->sb.w = p;
|
||||
}
|
||||
*ofsvar = sbuflen(&ls->sb);
|
||||
lastpc = 0;
|
||||
@@ -1486,7 +1486,7 @@ static size_t fs_prep_var(LexState *ls, FuncState *fs, size_t *ofsvar)
|
||||
startpc = vs->startpc;
|
||||
p = lj_strfmt_wuleb128(p, startpc-lastpc);
|
||||
p = lj_strfmt_wuleb128(p, vs->endpc-startpc);
|
||||
setsbufP(&ls->sb, p);
|
||||
ls->sb.w = p;
|
||||
lastpc = startpc;
|
||||
}
|
||||
}
|
||||
@@ -1499,7 +1499,7 @@ static void fs_fixup_var(LexState *ls, GCproto *pt, uint8_t *p, size_t ofsvar)
|
||||
{
|
||||
setmref(pt->uvinfo, p);
|
||||
setmref(pt->varinfo, (char *)p + ofsvar);
|
||||
memcpy(p, sbufB(&ls->sb), sbuflen(&ls->sb)); /* Copy from temp. buffer. */
|
||||
memcpy(p, ls->sb.b, sbuflen(&ls->sb)); /* Copy from temp. buffer. */
|
||||
}
|
||||
#else
|
||||
|
||||
|
||||
Reference in New Issue
Block a user