diff options
author | Björn Gustavsson <[email protected]> | 2019-03-22 15:17:47 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-03-22 15:31:32 +0100 |
commit | f810d541b5722c153ac29b302bb509164421b5e8 (patch) | |
tree | 692ce43bd0bf35f60898c1fe5c941bc01606038a /lib/erl_interface/src/encode/encode_char.c | |
parent | fcb89c6cba3be603575fa4ca68a8706861c8ebdc (diff) | |
download | otp-f810d541b5722c153ac29b302bb509164421b5e8.tar.gz otp-f810d541b5722c153ac29b302bb509164421b5e8.tar.bz2 otp-f810d541b5722c153ac29b302bb509164421b5e8.zip |
beam_emu.c: Avoid triggering an assertion for the wrong reason
Before 2d2e78ad6e66 that introduced tail-recursive calls of BIFs, the
stack was guaranteed not to be empty when `erlang:raise/3` was called
from the `catch` block of a `try` (because the `try` had set up a
stack frame that would be deallocated after the `raise` call).
Now the stack can be empty, so the ASSERT() call in next_catch()
that checks that there is a continuation pointer at the top of
the stack may fail.
Move the ASSERT() call to after check for empty stack.
While at it, also add a comment of the reason for the assertion.
Diffstat (limited to 'lib/erl_interface/src/encode/encode_char.c')
0 files changed, 0 insertions, 0 deletions