Update the spec reference testsuite submodule (#3450)
* Update the spec reference testsuite submodule This commit brings in recent updates to the spec test suite. Most of the changes here were already fixed in `wasmparser` with some tweaks to esoteric modules, but Wasmtime also gets a bug fix where where import matching for the size of tables/memories is based on the current runtime size of the table/memory rather than the original type of the table/memory. This means that during type matching the actual value is consulted for its size rather than using the minimum size listed in its type. * Fix now-missing directories in build script
This commit is contained in:
@@ -527,13 +527,28 @@ impl<'data> ModuleEnvironment<'data> {
|
||||
let mut elements =
|
||||
Vec::with_capacity(usize::try_from(items_reader.get_count()).unwrap());
|
||||
for item in items_reader {
|
||||
elements.push(match item? {
|
||||
ElementItem::Func(f) => {
|
||||
let func = match item? {
|
||||
ElementItem::Func(f) => Some(f),
|
||||
ElementItem::Expr(init) => {
|
||||
match init.get_binary_reader().read_operator()? {
|
||||
Operator::RefNull { .. } => None,
|
||||
Operator::RefFunc { function_index } => Some(function_index),
|
||||
s => {
|
||||
return Err(WasmError::Unsupported(format!(
|
||||
"unsupported init expr in element section: {:?}",
|
||||
s
|
||||
)));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
elements.push(match func {
|
||||
Some(f) => {
|
||||
let f = FuncIndex::from_u32(f);
|
||||
self.flag_func_escaped(f);
|
||||
f
|
||||
}
|
||||
ElementItem::Null(_ty) => FuncIndex::reserved_value(),
|
||||
None => FuncIndex::reserved_value(),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user