Cleans up the WASM environment handling.
Instead of passing the entire script resolver as a pointer to the WebAssemblyEnv, we now have split off the data actually relevant to the environment into it's own class, which is stored inside of an Arc.
This commit is contained in:
@@ -56,7 +56,7 @@ fn _error(env: &WebAssemblyEnv, message: u32, message_len: u32, file: u32, file_
|
||||
}
|
||||
|
||||
fn move_library_get_move_by_hash(env: &WebAssemblyEnv, lib: ExternRef<MoveLibrary>, hash: u32) -> ExternRef<MoveData> {
|
||||
let lib = lib.value(env);
|
||||
let lib = lib.value(env).unwrap();
|
||||
let m = lib.get_by_hash(hash);
|
||||
if let Some(v) = m {
|
||||
ExternRef::new(env, v)
|
||||
@@ -66,20 +66,20 @@ fn move_library_get_move_by_hash(env: &WebAssemblyEnv, lib: ExternRef<MoveLibrar
|
||||
}
|
||||
|
||||
fn move_data_get_name(env: &WebAssemblyEnv, move_data: ExternRef<MoveData>) -> ExternRef<StringKey> {
|
||||
let move_data = move_data.value(env);
|
||||
let move_data = move_data.value(env).unwrap();
|
||||
ExternRef::new(env, move_data.name())
|
||||
}
|
||||
|
||||
fn move_data_get_base_power(env: &WebAssemblyEnv, move_data: ExternRef<MoveData>) -> u8 {
|
||||
move_data.value(env).base_power()
|
||||
move_data.value(env).unwrap().base_power()
|
||||
}
|
||||
|
||||
fn const_string_get_hash(env: &WebAssemblyEnv, string_key: ExternRef<StringKey>) -> u32 {
|
||||
string_key.value(env).hash()
|
||||
string_key.value(env).unwrap().hash()
|
||||
}
|
||||
|
||||
fn const_string_get_str(env: &WebAssemblyEnv, string_key: ExternRef<StringKey>) -> u32 {
|
||||
let string_key = string_key.value(env).str();
|
||||
let string_key = string_key.value(env).unwrap().str();
|
||||
let s: CString = CString::new(string_key.as_bytes()).unwrap();
|
||||
let wasm_string_ptr = env
|
||||
.resolver()
|
||||
@@ -93,9 +93,9 @@ fn battle_library_get_data_library(
|
||||
env: &WebAssemblyEnv,
|
||||
dynamic_lib: ExternRef<DynamicLibrary>,
|
||||
) -> ExternRef<StaticData> {
|
||||
ExternRef::new(env, dynamic_lib.value(env).static_data())
|
||||
ExternRef::new(env, dynamic_lib.value(env).unwrap().static_data())
|
||||
}
|
||||
|
||||
fn data_library_get_move_library(env: &WebAssemblyEnv, data_library: ExternRef<StaticData>) -> ExternRef<MoveLibrary> {
|
||||
ExternRef::new(env, data_library.value(env).moves())
|
||||
ExternRef::new(env, data_library.value(env).unwrap().moves())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user