Reenabled longjmp 🎉

This commit is contained in:
Syrus
2019-04-09 18:33:29 -07:00
parent b2446b567e
commit 02ed9f0e5f
13 changed files with 171 additions and 241 deletions

View File

@ -39,16 +39,16 @@ pub fn __longjmp(ctx: &mut Ctx, env_addr: u32, val: c_int) {
/// _longjmp
pub fn _longjmp(ctx: &mut Ctx, env_addr: i32, val: c_int) {
let val = if val == 0 {
1
} else {
val
};
get_emscripten_data(ctx).set_threw.as_ref().expect("set_threw is None").call(env_addr, val).expect("set_threw failed to call");
let val = if val == 0 { 1 } else { val };
get_emscripten_data(ctx)
.set_threw
.as_ref()
.expect("set_threw is None")
.call(env_addr, val)
.expect("set_threw failed to call");
panic!("longjmp");
}
extern "C" {
fn setjmp(env: *mut c_void) -> c_int;
fn longjmp(env: *mut c_void, val: c_int) -> !;