sexp_emit_word should align before expanding

This commit is contained in:
Alex Shinn 2015-05-12 23:16:58 +09:00
parent 607d70c6a0
commit ad59eee89f

2
vm.c
View file

@ -114,11 +114,11 @@ static void bytecode_preserve (sexp ctx, sexp obj) {
static void sexp_emit_word (sexp ctx, sexp_uint_t val) {
unsigned char *data;
sexp_context_align_pos(ctx);
sexp_expand_bcode(ctx, sizeof(sexp));
if (sexp_exceptionp(sexp_context_exception(ctx)))
return;
data = sexp_bytecode_data(sexp_context_bc(ctx));
sexp_context_align_pos(ctx);
*((sexp_uint_t*)(&(data[sexp_unbox_fixnum(sexp_context_pos(ctx))]))) = val;
sexp_inc_context_pos(ctx, sizeof(sexp));
}