mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-25 19:28:26 +08:00
firmware: Fix object references in tuples
Sine 8740ec3dd
, the alignment() information from
"run-time type information" (i.e. the Tag type) is also
used when sending tuples to the host.
This commit is contained in:
parent
4bb2a3b9e0
commit
b9f13d48aa
@ -429,8 +429,8 @@ mod tag {
|
||||
// the ptr/length(s) pair is basically CSlice
|
||||
Tag::Bytes | Tag::String | Tag::ByteArray | Tag::List(_) | Tag::Array(_, _) =>
|
||||
core::mem::align_of::<CSlice<()>>(),
|
||||
// will not be sent from the host
|
||||
_ => unreachable!("unexpected tag from host")
|
||||
Tag::Keyword(_) => unreachable!("Tag::Keyword should not appear in composite types"),
|
||||
Tag::Object => core::mem::align_of::<u32>(),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -74,6 +74,9 @@ class RoundtripTest(ExperimentCase):
|
||||
def test_object_list(self):
|
||||
self.assertRoundtrip([object(), object()])
|
||||
|
||||
def test_object_tuple(self):
|
||||
self.assertRoundtrip((False, object(), True, 0x12345678))
|
||||
|
||||
def test_list_tuple(self):
|
||||
self.assertRoundtrip(([1, 2], [3, 4]))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user