1
0
mirror of https://github.com/janet-lang/janet synced 2025-06-05 16:14:12 +00:00

Make JANET_FRAME_SIZE consistent across architectures.

This means unmarshalling fibers should work across arches.
This commit is contained in:
Calvin Rose 2020-04-06 12:41:56 -05:00
parent 72beeeeaaa
commit b75a22b753
3 changed files with 7 additions and 7 deletions

View File

@ -987,7 +987,7 @@ static const uint8_t *unmarshal_one_fiber(
if (expected_framesize != stacktop - stack) { if (expected_framesize != stacktop - stack) {
janet_panic("fiber stackframe size mismatch"); janet_panic("fiber stackframe size mismatch");
} }
if (pcdiff < 0 || pcdiff >= def->bytecode_length) { if (pcdiff >= def->bytecode_length) {
janet_panic("fiber stackframe has invalid pc"); janet_panic("fiber stackframe has invalid pc");
} }
if ((int32_t)(prevframe + JANET_FRAME_SIZE) > stack) { if ((int32_t)(prevframe + JANET_FRAME_SIZE) > stack) {

View File

@ -733,8 +733,9 @@ struct JanetStackFrame {
int32_t flags; int32_t flags;
}; };
/* Number of Janets a frame takes up in the stack */ /* Number of Janets a frame takes up in the stack
#define JANET_FRAME_SIZE ((sizeof(JanetStackFrame) + sizeof(Janet) - 1) / sizeof(Janet)) * Should be constant across architectures */
#define JANET_FRAME_SIZE 4
/* A dynamic array type. */ /* A dynamic array type. */
struct JanetArray { struct JanetArray {

View File

@ -232,10 +232,9 @@ neldb\0\0\0\xD8\x05printG\x01\0\xDE\xDE\xDE'\x03\0marshal_tes/\x02
(unmarshal b load-image-dict) (unmarshal b load-image-dict)
(gccollect) (gccollect)
(def v (unmarshal
(unmarshal @"\xD7\xCD0\xD4000000\0\x03\x01\xCE\00\0\x01\0\0000\x03\0\0\0000000000\xCC0\0000"
@"\xD7\xCD0\xD4000000\0\x03\x01\xCE\00\0\x01\0\0000\x03\0\0\0000000000\xCC0\0000" load-image-dict)
load-image-dict))
(gccollect) (gccollect)
(end-suite) (end-suite)