mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-16 02:00:51 +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
@ -13,4 +13,4 @@ edition = '2018'
|
||||
|
||||
[dependencies]
|
||||
failure = "0.1"
|
||||
walrus = "0.8.0"
|
||||
walrus = "0.9.0"
|
||||
|
@ -676,7 +676,7 @@ impl Transform<'_> {
|
||||
// initialized correctly.
|
||||
fn inject_initialization(&mut self, module: &mut Module) {
|
||||
let ty = module.types.add(&[], &[]);
|
||||
let import = module.add_import_func(
|
||||
let (import, _) = module.add_import_func(
|
||||
"__wbindgen_placeholder__",
|
||||
"__wbindgen_init_anyref_table",
|
||||
ty,
|
||||
|
@ -18,9 +18,9 @@ log = "0.4"
|
||||
rustc-demangle = "0.1.13"
|
||||
serde_json = "1.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-shared = { path = "../shared", 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-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();
|
||||
for (func, (call_instr, descriptor)) in func_to_descriptor {
|
||||
let import_name = format!("__wbindgen_closure_wrapper{}", func.index());
|
||||
let id = module.add_import_func("__wbindgen_placeholder__", &import_name, ty);
|
||||
let import_id = module
|
||||
.imports
|
||||
.iter()
|
||||
.find(|i| i.name == import_name)
|
||||
.unwrap()
|
||||
.id();
|
||||
let (id, import_id) =
|
||||
module.add_import_func("__wbindgen_placeholder__", &import_name, ty);
|
||||
module.funcs.get_mut(id).name = Some(import_name);
|
||||
|
||||
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_derive = "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-shared = { path = "../shared", version = "=0.2.48" }
|
||||
|
||||
|
@ -13,4 +13,4 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
failure = "0.1"
|
||||
walrus = "0.8.0"
|
||||
walrus = "0.9.0"
|
||||
|
@ -101,7 +101,7 @@ impl Config {
|
||||
let prev_max = mem.maximum.unwrap();
|
||||
assert!(mem.import.is_some());
|
||||
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
|
||||
.exports
|
||||
@ -146,11 +146,24 @@ fn switch_data_segments_to_passive(
|
||||
) -> Result<Vec<PassiveSegment>, Error> {
|
||||
let mut ret = Vec::new();
|
||||
let memory = module.memories.get_mut(memory);
|
||||
let data = mem::replace(&mut memory.data, Default::default());
|
||||
for (offset, value) in data.into_iter() {
|
||||
let len = value.len() as u32;
|
||||
let id = module.data.add(value);
|
||||
ret.push(PassiveSegment { id, offset, len });
|
||||
for id in mem::replace(&mut memory.data_segments, Default::default()) {
|
||||
let data = module.data.get_mut(id);
|
||||
let kind = match &data.kind {
|
||||
walrus::DataKind::Active(kind) => kind,
|
||||
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)
|
||||
|
@ -14,7 +14,7 @@ edition = '2018'
|
||||
[dependencies]
|
||||
failure = "0.1"
|
||||
log = "0.4"
|
||||
walrus = "0.8.0"
|
||||
walrus = "0.9.0"
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = "3"
|
||||
|
Loading…
x
Reference in New Issue
Block a user