From dc203f539692a1191240209fb95afa020fa342b5 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 3 May 2016 09:55:15 +0200 Subject: erts: Fix pre-bif yield current_function --- erts/emulator/beam/beam_emu.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'erts/emulator/beam/beam_emu.c') diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index a88fea3802..d00a563087 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -2823,7 +2823,7 @@ do { \ /* If we have run out of reductions, we do a context switch before calling the bif */ c_p->arity = ((Export *)Arg(0))->code[2]; - c_p->current = NULL; + c_p->current = ((Export *)Arg(0))->code; goto context_switch3; } @@ -3538,9 +3538,7 @@ do { \ if (!((FCALLS - 1) > 0 || (FCALLS - 1) > neg_o_reds)) { /* If we have run out of reductions, we do a context switch before calling the nif */ - c_p->arity = I[-1]; - c_p->current = NULL; - goto context_switch3; + goto context_switch; } ERTS_MSACC_SET_STATE_CACHED_M_X(ERTS_MSACC_STATE_NIF); @@ -3589,9 +3587,7 @@ do { \ if (!((FCALLS - 1) > 0 || (FCALLS - 1) > neg_o_reds)) { /* If we have run out of reductions, we do a context switch before calling the bif */ - c_p->arity = I[-1]; - c_p->current = NULL; - goto context_switch3; + goto context_switch; } if (ERTS_MSACC_IS_ENABLED_CACHED_X()) { -- cgit v1.2.3