mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-31 17:31:06 +00:00
Update to walrus 0.9.0
This commit updates the `walrus` dependency with recent upstream API changes in `walrus` itself, namely updates to passive segements and how memory data segments are handled
This commit is contained in:
parent
68a1519eaa
commit
0daa290129
crates
anyref-xform
cli-support
cli
threads-xform
wasm-interpreter
@ -13,4 +13,4 @@ edition = '2018'
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
failure = "0.1"
|
failure = "0.1"
|
||||||
walrus = "0.8.0"
|
walrus = "0.9.0"
|
||||||
|
@ -676,7 +676,7 @@ impl Transform<'_> {
|
|||||||
// initialized correctly.
|
// initialized correctly.
|
||||||
fn inject_initialization(&mut self, module: &mut Module) {
|
fn inject_initialization(&mut self, module: &mut Module) {
|
||||||
let ty = module.types.add(&[], &[]);
|
let ty = module.types.add(&[], &[]);
|
||||||
let import = module.add_import_func(
|
let (import, _) = module.add_import_func(
|
||||||
"__wbindgen_placeholder__",
|
"__wbindgen_placeholder__",
|
||||||
"__wbindgen_init_anyref_table",
|
"__wbindgen_init_anyref_table",
|
||||||
ty,
|
ty,
|
||||||
|
@ -18,9 +18,9 @@ log = "0.4"
|
|||||||
rustc-demangle = "0.1.13"
|
rustc-demangle = "0.1.13"
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
tempfile = "3.0"
|
tempfile = "3.0"
|
||||||
walrus = "0.8.0"
|
walrus = "0.9.0"
|
||||||
wasm-bindgen-anyref-xform = { path = '../anyref-xform', version = '=0.2.48' }
|
wasm-bindgen-anyref-xform = { path = '../anyref-xform', version = '=0.2.48' }
|
||||||
wasm-bindgen-shared = { path = "../shared", version = '=0.2.48' }
|
wasm-bindgen-shared = { path = "../shared", version = '=0.2.48' }
|
||||||
wasm-bindgen-threads-xform = { path = '../threads-xform', version = '=0.2.48' }
|
wasm-bindgen-threads-xform = { path = '../threads-xform', version = '=0.2.48' }
|
||||||
wasm-bindgen-wasm-interpreter = { path = "../wasm-interpreter", version = '=0.2.48' }
|
wasm-bindgen-wasm-interpreter = { path = "../wasm-interpreter", version = '=0.2.48' }
|
||||||
wasm-webidl-bindings = "0.1.2"
|
wasm-webidl-bindings = "0.2.0"
|
||||||
|
@ -152,13 +152,8 @@ impl WasmBindgenDescriptorsSection {
|
|||||||
let ty = module.funcs.get(wbindgen_describe_closure).ty();
|
let ty = module.funcs.get(wbindgen_describe_closure).ty();
|
||||||
for (func, (call_instr, descriptor)) in func_to_descriptor {
|
for (func, (call_instr, descriptor)) in func_to_descriptor {
|
||||||
let import_name = format!("__wbindgen_closure_wrapper{}", func.index());
|
let import_name = format!("__wbindgen_closure_wrapper{}", func.index());
|
||||||
let id = module.add_import_func("__wbindgen_placeholder__", &import_name, ty);
|
let (id, import_id) =
|
||||||
let import_id = module
|
module.add_import_func("__wbindgen_placeholder__", &import_name, ty);
|
||||||
.imports
|
|
||||||
.iter()
|
|
||||||
.find(|i| i.name == import_name)
|
|
||||||
.unwrap()
|
|
||||||
.id();
|
|
||||||
module.funcs.get_mut(id).name = Some(import_name);
|
module.funcs.get_mut(id).name = Some(import_name);
|
||||||
|
|
||||||
let local = match &mut module.funcs.get_mut(func).kind {
|
let local = match &mut module.funcs.get_mut(func).kind {
|
||||||
|
@ -24,7 +24,7 @@ rouille = { version = "3.0.0", default-features = false }
|
|||||||
serde = { version = "1.0", features = ['derive'] }
|
serde = { version = "1.0", features = ['derive'] }
|
||||||
serde_derive = "1.0"
|
serde_derive = "1.0"
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
walrus = "0.8.0"
|
walrus = "0.9.0"
|
||||||
wasm-bindgen-cli-support = { path = "../cli-support", version = "=0.2.48" }
|
wasm-bindgen-cli-support = { path = "../cli-support", version = "=0.2.48" }
|
||||||
wasm-bindgen-shared = { path = "../shared", version = "=0.2.48" }
|
wasm-bindgen-shared = { path = "../shared", version = "=0.2.48" }
|
||||||
|
|
||||||
|
@ -13,4 +13,4 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
failure = "0.1"
|
failure = "0.1"
|
||||||
walrus = "0.8.0"
|
walrus = "0.9.0"
|
||||||
|
@ -101,7 +101,7 @@ impl Config {
|
|||||||
let prev_max = mem.maximum.unwrap();
|
let prev_max = mem.maximum.unwrap();
|
||||||
assert!(mem.import.is_some());
|
assert!(mem.import.is_some());
|
||||||
mem.maximum = Some(cmp::max(self.maximum_memory / PAGE_SIZE, prev_max));
|
mem.maximum = Some(cmp::max(self.maximum_memory / PAGE_SIZE, prev_max));
|
||||||
assert!(mem.data.is_empty());
|
assert!(mem.data_segments.is_empty());
|
||||||
|
|
||||||
let init_memory = module
|
let init_memory = module
|
||||||
.exports
|
.exports
|
||||||
@ -146,11 +146,24 @@ fn switch_data_segments_to_passive(
|
|||||||
) -> Result<Vec<PassiveSegment>, Error> {
|
) -> Result<Vec<PassiveSegment>, Error> {
|
||||||
let mut ret = Vec::new();
|
let mut ret = Vec::new();
|
||||||
let memory = module.memories.get_mut(memory);
|
let memory = module.memories.get_mut(memory);
|
||||||
let data = mem::replace(&mut memory.data, Default::default());
|
for id in mem::replace(&mut memory.data_segments, Default::default()) {
|
||||||
for (offset, value) in data.into_iter() {
|
let data = module.data.get_mut(id);
|
||||||
let len = value.len() as u32;
|
let kind = match &data.kind {
|
||||||
let id = module.data.add(value);
|
walrus::DataKind::Active(kind) => kind,
|
||||||
ret.push(PassiveSegment { id, offset, len });
|
walrus::DataKind::Passive => continue,
|
||||||
|
};
|
||||||
|
let offset = match kind.location {
|
||||||
|
walrus::ActiveDataLocation::Absolute(n) => {
|
||||||
|
walrus::InitExpr::Value(walrus::ir::Value::I32(n as i32))
|
||||||
|
}
|
||||||
|
walrus::ActiveDataLocation::Relative(global) => walrus::InitExpr::Global(global),
|
||||||
|
};
|
||||||
|
data.kind = walrus::DataKind::Passive;
|
||||||
|
ret.push(PassiveSegment {
|
||||||
|
id,
|
||||||
|
offset,
|
||||||
|
len: data.value.len() as u32,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(ret)
|
Ok(ret)
|
||||||
|
@ -14,7 +14,7 @@ edition = '2018'
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
failure = "0.1"
|
failure = "0.1"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
walrus = "0.8.0"
|
walrus = "0.9.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempfile = "3"
|
tempfile = "3"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user