Prevent subsequent panics for already borrowed editor (#689)

Fix double panic
This commit is contained in:
0HyperCube 2022-06-26 22:55:24 +01:00 committed by Keavon Chambers
parent 91219cbe64
commit 581ed81747
1 changed files with 13 additions and 8 deletions

View File

@ -65,16 +65,21 @@ impl JsEditorHandle {
} }
let frontend_messages = EDITOR_INSTANCES.with(|instances| { let frontend_messages = EDITOR_INSTANCES.with(|instances| {
instances instances.try_borrow_mut().map(|mut editors| {
.borrow_mut() editors
.get_mut(&self.editor_id) .get_mut(&self.editor_id)
.expect("EDITOR_INSTANCES does not contain the current editor_id") .expect("EDITOR_INSTANCES does not contain the current editor_id")
.handle_message(message.into()) .handle_message(message.into())
})
}); });
for message in frontend_messages.into_iter() {
// Send each FrontendMessage to the JavaScript frontend if let Ok(frontend_messages) = frontend_messages {
self.send_frontend_message_to_js(message); for message in frontend_messages.into_iter() {
// Send each FrontendMessage to the JavaScript frontend
self.send_frontend_message_to_js(message);
}
} }
// If the editor cannot be borrowed then it has encountered a panic - we should just ignore new dispatches
} }
// Sends a FrontendMessage to JavaScript // Sends a FrontendMessage to JavaScript