Rework of FFI, adding a value identifier, so we can keep knowledge of data even when data moves.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -138,10 +138,10 @@ fn string_key_get_str(env: FunctionEnvMut<WebAssemblyEnv>, string_key: ExternRef
|
||||
fn effect_parameter_get_type(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> u8 {
|
||||
let v = parameter.value_func(&env).unwrap();
|
||||
match v {
|
||||
EffectParameter::Bool(_) => 1,
|
||||
EffectParameter::Int(_) => 2,
|
||||
EffectParameter::Float(_) => 3,
|
||||
EffectParameter::String(_) => 4,
|
||||
EffectParameter::Bool(_, _) => 1,
|
||||
EffectParameter::Int(_, _) => 2,
|
||||
EffectParameter::Float(_, _) => 3,
|
||||
EffectParameter::String(_, _) => 4,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ fn effect_parameter_get_type(env: FunctionEnvMut<WebAssemblyEnv>, parameter: Ext
|
||||
fn effect_parameter_as_bool(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> u8 {
|
||||
let v = parameter.value_func(&env).unwrap();
|
||||
match v {
|
||||
EffectParameter::Bool(b) => {
|
||||
EffectParameter::Bool(_, b) => {
|
||||
if *b {
|
||||
1
|
||||
} else {
|
||||
@@ -164,7 +164,7 @@ fn effect_parameter_as_bool(env: FunctionEnvMut<WebAssemblyEnv>, parameter: Exte
|
||||
fn effect_parameter_as_int(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> i64 {
|
||||
let v = parameter.value_func(&env).unwrap();
|
||||
match v {
|
||||
EffectParameter::Int(i) => *i,
|
||||
EffectParameter::Int(_, i) => *i,
|
||||
_ => panic!("Unexpected parameter type!"),
|
||||
}
|
||||
}
|
||||
@@ -173,7 +173,7 @@ fn effect_parameter_as_int(env: FunctionEnvMut<WebAssemblyEnv>, parameter: Exter
|
||||
fn effect_parameter_as_float(env: FunctionEnvMut<WebAssemblyEnv>, parameter: ExternRef<EffectParameter>) -> f32 {
|
||||
let v = parameter.value_func(&env).unwrap();
|
||||
match v {
|
||||
EffectParameter::Float(f) => *f,
|
||||
EffectParameter::Float(_, f) => *f,
|
||||
_ => panic!("Unexpected parameter type!"),
|
||||
}
|
||||
}
|
||||
@@ -185,7 +185,7 @@ fn effect_parameter_as_string(
|
||||
) -> ExternRef<StringKey> {
|
||||
let v = parameter.value_func(&env).unwrap();
|
||||
match v {
|
||||
EffectParameter::String(s) => ExternRef::func_new(&env, s),
|
||||
EffectParameter::String(_, s) => ExternRef::func_new(&env, s),
|
||||
_ => panic!("Unexpected parameter type!"),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user