Skip to content

Commit 303024d

Browse files
author
Guy Bedford
authored
fix: ensure correct reference to engine world in merge (#168)
1 parent 5c82c8d commit 303024d

File tree

1 file changed

+5
-9
lines changed
  • crates/spidermonkey-embedding-splicer/src

1 file changed

+5
-9
lines changed

crates/spidermonkey-embedding-splicer/src/lib.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ impl Guest for SpidermonkeyEmbeddingSplicerComponent {
138138
wit_component::dummy_module(&resolve, world, wit_parser::Mangling::Standard32);
139139

140140
// merge the engine world with the target world, retaining the engine producers
141-
let producers = if let Ok((
141+
let (engine_world, producers) = if let Ok((
142142
_,
143143
Bindgen {
144144
resolve: mut engine_resolve,
@@ -186,12 +186,13 @@ impl Guest for SpidermonkeyEmbeddingSplicerComponent {
186186
.shift_remove(&serve)
187187
.unwrap();
188188
}
189-
resolve
189+
let map = resolve
190190
.merge(engine_resolve)
191191
.expect("unable to merge with engine world");
192-
producers
192+
let engine_world = map.map_world(engine_world, None).unwrap();
193+
(engine_world, producers)
193194
} else {
194-
None
195+
unreachable!();
195196
};
196197

197198
let componentized = bindgen::componentize_bindgen(
@@ -204,11 +205,6 @@ impl Guest for SpidermonkeyEmbeddingSplicerComponent {
204205
)
205206
.map_err(|err| err.to_string())?;
206207

207-
let (engine_world, _) = resolve
208-
.worlds
209-
.iter()
210-
.find(|(world, _)| resolve.worlds[*world].name == "root")
211-
.unwrap();
212208
resolve
213209
.merge_worlds(engine_world, world)
214210
.expect("unable to merge with engine world");

0 commit comments

Comments
 (0)