diff options
author | Björn Gustavsson <[email protected]> | 2011-03-11 08:29:47 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-03-29 07:13:57 +0200 |
commit | 9104dc674c265b82728a1b494194fdeea4ad6661 (patch) | |
tree | ee4aea92ae075d90901d9676678e40ed7925eddf /erts/emulator/beam/beam_emu.c | |
parent | 459f531d22a16778d528d62978fc0772e30c9d30 (diff) | |
download | otp-9104dc674c265b82728a1b494194fdeea4ad6661.tar.gz otp-9104dc674c265b82728a1b494194fdeea4ad6661.tar.bz2 otp-9104dc674c265b82728a1b494194fdeea4ad6661.zip |
Fix duplicate entries in stacktraces after calling certain BIFs
Calling a BIF thaf is called as a function (such as process_info/{1,2})
would leave a non-zero value in c_p->cp, which would lead to
duplicate entries in the stacktrace.
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r-- | erts/emulator/beam/beam_emu.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index 7b2aac0908..8991f7b198 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -3413,6 +3413,7 @@ void process_main(void) r(0) = nif_bif_result; CHECK_TERM(r(0)); SET_I(c_p->cp); + c_p->cp = 0; Goto(*I); } else if (c_p->freason == TRAP) { SET_I(*((BeamInstr **) (UWord) ((c_p)->def_arg_reg + 3))); |