1
0
mirror of https://github.com/fluencelabs/wasmer synced 2025-03-31 23:11:04 +00:00

Improved import functions casting readability

This commit is contained in:
Syrus Akbary 2018-11-26 21:23:23 -08:00
parent c2ede37a72
commit 4fb01c87ec
4 changed files with 51 additions and 51 deletions
src
apis/emscripten
spectests
webassembly

@ -102,28 +102,28 @@ pub fn generate_emscripten_env<'a, 'b>() -> ImportObject<&'a str, &'b str> {
import_object.set("env", "tableBase", ImportValue::Global(0)); import_object.set("env", "tableBase", ImportValue::Global(0));
// Print functions // Print functions
import_object.set("env", "printf", ImportValue::Func(io::printf as *const u8)); import_object.set("env", "printf", ImportValue::Func(io::printf as _));
import_object.set( import_object.set(
"env", "env",
"putchar", "putchar",
ImportValue::Func(io::putchar as *const u8), ImportValue::Func(io::putchar as _),
); );
// Lock // Lock
import_object.set( import_object.set(
"env", "env",
"___lock", "___lock",
ImportValue::Func(lock::___lock as *const u8), ImportValue::Func(lock::___lock as _),
); );
import_object.set( import_object.set(
"env", "env",
"___unlock", "___unlock",
ImportValue::Func(lock::___unlock as *const u8), ImportValue::Func(lock::___unlock as _),
); );
// Env // Env
import_object.set( import_object.set(
"env", "env",
"_getenv", "_getenv",
ImportValue::Func(env::_getenv as *const u8), ImportValue::Func(env::_getenv as _),
); );
import_object.set("env", "_getpwnam", ImportValue::Func(env::_getpwnam as _)); import_object.set("env", "_getpwnam", ImportValue::Func(env::_getpwnam as _));
import_object.set("env", "_getgrnam", ImportValue::Func(env::_getgrnam as _)); import_object.set("env", "_getgrnam", ImportValue::Func(env::_getgrnam as _));
@ -131,212 +131,212 @@ pub fn generate_emscripten_env<'a, 'b>() -> ImportObject<&'a str, &'b str> {
import_object.set( import_object.set(
"env", "env",
"___setErrNo", "___setErrNo",
ImportValue::Func(errno::___seterrno as *const u8), ImportValue::Func(errno::___seterrno as _),
); );
// Syscalls // Syscalls
import_object.set( import_object.set(
"env", "env",
"___syscall1", "___syscall1",
ImportValue::Func(syscalls::___syscall1 as *const u8), ImportValue::Func(syscalls::___syscall1 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall3", "___syscall3",
ImportValue::Func(syscalls::___syscall3 as *const u8), ImportValue::Func(syscalls::___syscall3 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall4", "___syscall4",
ImportValue::Func(syscalls::___syscall4 as *const u8), ImportValue::Func(syscalls::___syscall4 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall5", "___syscall5",
ImportValue::Func(syscalls::___syscall5 as *const u8), ImportValue::Func(syscalls::___syscall5 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall6", "___syscall6",
ImportValue::Func(syscalls::___syscall6 as *const u8), ImportValue::Func(syscalls::___syscall6 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall54", "___syscall54",
ImportValue::Func(syscalls::___syscall54 as *const u8), ImportValue::Func(syscalls::___syscall54 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall140", "___syscall140",
ImportValue::Func(syscalls::___syscall140 as *const u8), ImportValue::Func(syscalls::___syscall140 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall145", "___syscall145",
ImportValue::Func(syscalls::___syscall145 as *const u8), ImportValue::Func(syscalls::___syscall145 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall146", "___syscall146",
ImportValue::Func(syscalls::___syscall146 as *const u8), ImportValue::Func(syscalls::___syscall146 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall221", "___syscall221",
ImportValue::Func(syscalls::___syscall221 as *const u8), ImportValue::Func(syscalls::___syscall221 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall20", "___syscall20",
ImportValue::Func(syscalls::___syscall20 as *const u8), ImportValue::Func(syscalls::___syscall20 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall64", "___syscall64",
ImportValue::Func(syscalls::___syscall64 as *const u8), ImportValue::Func(syscalls::___syscall64 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall122", "___syscall122",
ImportValue::Func(syscalls::___syscall122 as *const u8), ImportValue::Func(syscalls::___syscall122 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall201", "___syscall201",
ImportValue::Func(syscalls::___syscall201 as *const u8), ImportValue::Func(syscalls::___syscall201 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall202", "___syscall202",
ImportValue::Func(syscalls::___syscall202 as *const u8), ImportValue::Func(syscalls::___syscall202 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall340", "___syscall340",
ImportValue::Func(syscalls::___syscall340 as *const u8), ImportValue::Func(syscalls::___syscall340 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall197", "___syscall197",
ImportValue::Func(syscalls::___syscall197 as *const u8), ImportValue::Func(syscalls::___syscall197 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall180", "___syscall180",
ImportValue::Func(syscalls::___syscall180 as *const u8), ImportValue::Func(syscalls::___syscall180 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall39", "___syscall39",
ImportValue::Func(syscalls::___syscall39 as *const u8), ImportValue::Func(syscalls::___syscall39 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall195", "___syscall195",
ImportValue::Func(syscalls::___syscall195 as *const u8), ImportValue::Func(syscalls::___syscall195 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall212", "___syscall212",
ImportValue::Func(syscalls::___syscall212 as *const u8), ImportValue::Func(syscalls::___syscall212 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall221", "___syscall221",
ImportValue::Func(syscalls::___syscall221 as *const u8), ImportValue::Func(syscalls::___syscall221 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall102", "___syscall102",
ImportValue::Func(syscalls::___syscall102 as *const u8), ImportValue::Func(syscalls::___syscall102 as _),
); );
import_object.set( import_object.set(
"env", "env",
"___syscall54", "___syscall54",
ImportValue::Func(syscalls::___syscall54 as *const u8), ImportValue::Func(syscalls::___syscall54 as _),
); );
// Process // Process
import_object.set( import_object.set(
"env", "env",
"abort", "abort",
ImportValue::Func(process::em_abort as *const u8), ImportValue::Func(process::em_abort as _),
); );
import_object.set( import_object.set(
"env", "env",
"_abort", "_abort",
ImportValue::Func(process::_abort as *const u8), ImportValue::Func(process::_abort as _),
); );
import_object.set( import_object.set(
"env", "env",
"abortStackOverflow", "abortStackOverflow",
ImportValue::Func(process::abort_stack_overflow as *const u8), ImportValue::Func(process::abort_stack_overflow as _),
); );
// Memory // Memory
import_object.set( import_object.set(
"env", "env",
"abortOnCannotGrowMemory", "abortOnCannotGrowMemory",
ImportValue::Func(memory::abort_on_cannot_grow_memory as *const u8), ImportValue::Func(memory::abort_on_cannot_grow_memory as _),
); );
import_object.set( import_object.set(
"env", "env",
"_emscripten_memcpy_big", "_emscripten_memcpy_big",
ImportValue::Func(memory::_emscripten_memcpy_big as *const u8), ImportValue::Func(memory::_emscripten_memcpy_big as _),
); );
import_object.set( import_object.set(
"env", "env",
"enlargeMemory", "enlargeMemory",
ImportValue::Func(memory::enlarge_memory as *const u8), ImportValue::Func(memory::enlarge_memory as _),
); );
import_object.set( import_object.set(
"env", "env",
"getTotalMemory", "getTotalMemory",
ImportValue::Func(memory::get_total_memory as *const u8), ImportValue::Func(memory::get_total_memory as _),
); );
// NullFuncs // NullFuncs
import_object.set( import_object.set(
"env", "env",
"nullFunc_ii", "nullFunc_ii",
ImportValue::Func(nullfunc::nullfunc_ii as *const u8), ImportValue::Func(nullfunc::nullfunc_ii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_iii", "nullFunc_iii",
ImportValue::Func(nullfunc::nullfunc_iii as *const u8), ImportValue::Func(nullfunc::nullfunc_iii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_iiii", "nullFunc_iiii",
ImportValue::Func(nullfunc::nullfunc_iiii as *const u8), ImportValue::Func(nullfunc::nullfunc_iiii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_iiiii", "nullFunc_iiiii",
ImportValue::Func(nullfunc::nullfunc_iiiii as *const u8), ImportValue::Func(nullfunc::nullfunc_iiiii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_iiiiii", "nullFunc_iiiiii",
ImportValue::Func(nullfunc::nullfunc_iiiiii as *const u8), ImportValue::Func(nullfunc::nullfunc_iiiiii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_vi", "nullFunc_vi",
ImportValue::Func(nullfunc::nullfunc_vi as *const u8), ImportValue::Func(nullfunc::nullfunc_vi as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_vii", "nullFunc_vii",
ImportValue::Func(nullfunc::nullfunc_vii as *const u8), ImportValue::Func(nullfunc::nullfunc_vii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_viii", "nullFunc_viii",
ImportValue::Func(nullfunc::nullfunc_viii as *const u8), ImportValue::Func(nullfunc::nullfunc_viii as _),
); );
import_object.set( import_object.set(
"env", "env",
"nullFunc_viiii", "nullFunc_viiii",
ImportValue::Func(nullfunc::nullfunc_viiii as *const u8), ImportValue::Func(nullfunc::nullfunc_viiii as _),
); );
// Time // Time
import_object.set( import_object.set(

@ -10,8 +10,8 @@ static GLOBAL_I32: i32 = 666;
pub fn spectest_importobject<'a, 'b>() -> ImportObject<&'a str, &'b str> { pub fn spectest_importobject<'a, 'b>() -> ImportObject<&'a str, &'b str> {
let mut import_object = ImportObject::new(); let mut import_object = ImportObject::new();
import_object.set("spectest", "print_i32", ImportValue::Func(print_i32 as *const u8)); import_object.set("spectest", "print_i32", ImportValue::Func(print_i32 as _));
import_object.set("spectest", "print", ImportValue::Func(print as *const u8)); import_object.set("spectest", "print", ImportValue::Func(print as _));
import_object.set("spectest", "global_i32", ImportValue::Global(GLOBAL_I32 as _)); import_object.set("spectest", "global_i32", ImportValue::Global(GLOBAL_I32 as _));
import_object.set("spectest", "table", ImportValue::Table(vec![0; 30])); import_object.set("spectest", "table", ImportValue::Table(vec![0; 30]));
return import_object; return import_object;

@ -125,10 +125,10 @@ mod tests {
fn test_import_object() { fn test_import_object() {
fn x() {} fn x() {}
let mut import_object = ImportObject::new(); let mut import_object = ImportObject::new();
import_object.set("abc", "def", ImportValue::Func(x as *const u8)); import_object.set("abc", "def", ImportValue::Func(x as _));
assert_eq!( assert_eq!(
*import_object.get(&"abc", &"def").unwrap(), *import_object.get(&"abc", &"def").unwrap(),
ImportValue::Func(x as *const u8) ImportValue::Func(x as _)
); );
} }
} }

@ -218,7 +218,7 @@ impl Instance {
"The import {}.{} is not provided, therefore will be mocked.", "The import {}.{} is not provided, therefore will be mocked.",
module, field module, field
); );
&(mock_fn as *const u8) &(mock_fn as _)
} else { } else {
return Err(ErrorKind::LinkError(format!( return Err(ErrorKind::LinkError(format!(
"Imported function {}.{} was not provided in the import_functions", "Imported function {}.{} was not provided in the import_functions",