diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-09-10 15:03:56 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-10 15:03:56 -0700 |
commit | bb7546d9f4b694b96a971e39f4d81fec0bb0610b (patch) | |
tree | 699683c8c49edf02caba8eb298c53c28eb9b713b /src/runtime.js | |
parent | c33af789cb9d37ccea5cfb7cc3eef87c2eb8d2fd (diff) |
handle flexible arrays at the end of structs, whose elements are themselves structs; fixes #1602
Diffstat (limited to 'src/runtime.js')
-rw-r--r-- | src/runtime.js | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/runtime.js b/src/runtime.js index 33088ad9..6b1afd80 100644 --- a/src/runtime.js +++ b/src/runtime.js @@ -214,7 +214,11 @@ var Runtime = { // and it adds no size // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!'); size = 0; - alignSize = type.alignSize || QUANTUM_SIZE; + if (Types.types[field]) { + alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize); + } else { + alignSize = type.alignSize || QUANTUM_SIZE; + } } else { size = Types.types[field].flatSize; alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize); |