1
0
mirror of https://github.com/janet-lang/janet synced 2025-05-03 16:04:15 +00:00

Don't error on empty struct.

This commit is contained in:
Calvin Rose 2024-10-18 17:53:21 -05:00
parent 046d28662d
commit 07155ce657
2 changed files with 7 additions and 1 deletions

View File

@ -424,6 +424,7 @@ static JanetFFIStruct *build_struct_type(int32_t argc, const Janet *argv) {
st->size += (uint32_t) el_size;
} else {
if (el_align > st->align) st->align = (uint32_t) el_align;
if (el_align <= 0) el_align = 1;
st->fields[i].offset = (uint32_t)(((st->size + el_align - 1) / el_align) * el_align);
st->size = (uint32_t)(el_size + st->fields[i].offset);
}

View File

@ -52,5 +52,10 @@
(assert (= 26 (ffi/size [:char :pack :int @[:char 21]]))
"array struct size"))
(end-suite)
(compwhen has-ffi
(assert-no-error "bad struct issue #1512" (ffi/struct :void))
(def s (ffi/struct :void))
(assert (= 0 (ffi/size s)))
(assert (= 1 (ffi/align s))))
(end-suite)