mirror of
https://github.com/janet-lang/janet
synced 2025-07-05 03:22:54 +00:00
Don't error on empty struct.
This commit is contained in:
parent
046d28662d
commit
07155ce657
@ -424,6 +424,7 @@ static JanetFFIStruct *build_struct_type(int32_t argc, const Janet *argv) {
|
|||||||
st->size += (uint32_t) el_size;
|
st->size += (uint32_t) el_size;
|
||||||
} else {
|
} else {
|
||||||
if (el_align > st->align) st->align = (uint32_t) el_align;
|
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->fields[i].offset = (uint32_t)(((st->size + el_align - 1) / el_align) * el_align);
|
||||||
st->size = (uint32_t)(el_size + st->fields[i].offset);
|
st->size = (uint32_t)(el_size + st->fields[i].offset);
|
||||||
}
|
}
|
||||||
|
@ -52,5 +52,10 @@
|
|||||||
(assert (= 26 (ffi/size [:char :pack :int @[:char 21]]))
|
(assert (= 26 (ffi/size [:char :pack :int @[:char 21]]))
|
||||||
"array struct size"))
|
"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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user