Complete refactor of the FFI to use handles instead of pointers.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-06-24 14:44:23 +02:00
parent 4c222cb753
commit 78bb91093b
76 changed files with 1510 additions and 1952 deletions

View File

@@ -146,10 +146,10 @@ fn effect_parameter_get_type(
) -> WasmResult<u8> {
let value = get_value_arc!(parameter, env);
wasm_ok(match value.deref() {
EffectParameter::Bool(_, _) => 1,
EffectParameter::Int(_, _) => 2,
EffectParameter::Float(_, _) => 3,
EffectParameter::String(_, _) => 4,
EffectParameter::Bool(_) => 1,
EffectParameter::Int(_) => 2,
EffectParameter::Float(_) => 3,
EffectParameter::String(_) => 4,
})
}
@@ -160,7 +160,7 @@ fn effect_parameter_as_bool(
) -> WasmResult<u8> {
let value = get_value_arc!(parameter, env);
match value.deref() {
EffectParameter::Bool(_, b) => wasm_ok(<u8 as From<bool>>::from(*b)),
EffectParameter::Bool(b) => wasm_ok(<u8 as From<bool>>::from(*b)),
_ => wasm_err::<u8>(anyhow!("Unexpected parameter type. Expected bool, got {}", value), &env),
}
}
@@ -172,7 +172,7 @@ fn effect_parameter_as_int(
) -> WasmResult<i64> {
let value = get_value_arc!(parameter, env);
match value.deref() {
EffectParameter::Int(_, i) => wasm_ok(*i),
EffectParameter::Int(i) => wasm_ok(*i),
_ => wasm_err::<i64>(anyhow!("Unexpected parameter type. Expected int, got {}", value), &env),
}
}
@@ -184,7 +184,7 @@ fn effect_parameter_as_float(
) -> WasmResult<f32> {
let value = get_value_arc!(parameter, env);
match value.deref() {
EffectParameter::Float(_, f) => wasm_ok(*f),
EffectParameter::Float(f) => wasm_ok(*f),
_ => wasm_err::<f32>(
anyhow!("Unexpected parameter type. Expected float, got {}", value),
&env,
@@ -199,7 +199,7 @@ fn effect_parameter_as_string(
) -> WasmResult<ExternRef<StringKey>> {
let value = get_value_arc!(parameter, env);
match value.deref() {
EffectParameter::String(_, s) => wasm_ok(ExternRef::<StringKey>::func_new(&env, s.clone().into())),
EffectParameter::String(s) => wasm_ok(ExternRef::<StringKey>::func_new(&env, s.clone().into())),
_ => wasm_err::<ExternRef<StringKey>>(
anyhow!("Unexpected parameter type. Expected string, got {}", value),
&env,