From 6ef106fee9df8678911b685cad5d88540f364025 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 4 May 2020 15:19:37 -0500 Subject: [PATCH] Fix a missing early-return in `Table::get` (#1652) Turns out this was a typo from #1016! --- crates/api/src/values.rs | 2 +- tests/all/main.rs | 1 + tests/all/table.rs | 13 +++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/all/table.rs diff --git a/crates/api/src/values.rs b/crates/api/src/values.rs index 8d1d7f55be40..6eb8004d9f5a 100644 --- a/crates/api/src/values.rs +++ b/crates/api/src/values.rs @@ -216,7 +216,7 @@ pub(crate) fn from_checked_anyfunc( store: &Store, ) -> Val { if item.type_index == wasmtime_runtime::VMSharedSignatureIndex::default() { - Val::AnyRef(AnyRef::Null); + return Val::AnyRef(AnyRef::Null); } let instance_handle = unsafe { wasmtime_runtime::InstanceHandle::from_vmctx(item.vmctx) }; let export = wasmtime_runtime::ExportFunction { diff --git a/tests/all/main.rs b/tests/all/main.rs index 95b7d6ba44c9..e7409c21d2d2 100644 --- a/tests/all/main.rs +++ b/tests/all/main.rs @@ -14,6 +14,7 @@ mod linker; mod memory_creator; mod name; mod stack_overflow; +mod table; mod traps; mod use_after_drop; mod wast; diff --git a/tests/all/table.rs b/tests/all/table.rs new file mode 100644 index 000000000000..8408cd905106 --- /dev/null +++ b/tests/all/table.rs @@ -0,0 +1,13 @@ +use wasmtime::*; + +#[test] +fn get_none() { + let store = Store::default(); + let ty = TableType::new(ValType::FuncRef, Limits::new(1, None)); + let table = Table::new(&store, ty, Val::AnyRef(AnyRef::Null)).unwrap(); + match table.get(0) { + Some(Val::AnyRef(AnyRef::Null)) => {} + _ => panic!(), + } + assert!(table.get(1).is_none()); +}