diff options
author | David Mitchell <davem@iabyn.com> | 2022-05-12 14:04:27 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2022-06-20 11:16:46 +0100 |
commit | a6ceaeb95aed574844bcfa9b9779650ed7fb5c63 (patch) | |
tree | 546071fe9b4a18c3d2647c9e69bb637d29673658 /pod/perlinterp.pod | |
parent | 5fd637ce8c4db075c0668d9f9c806f6712cd3c7f (diff) | |
download | perl-a6ceaeb95aed574844bcfa9b9779650ed7fb5c63.tar.gz |
pp_ctl.c: revamp S_docatch() and docs
Document fully what S_docatch() does, and remove the one macro which
calls it, replacing all the call-sites with a direct call to docatch().
docatch() is a core part of perl's internal exception handling, and as
such is conceptually complex. It was made even more complex by
v5.27.0-75-gd7e3f70f30, which causes functions like pp_entertry() to
recursively call themselves sometimes. But this detail was hidden by
the RUN_PP_CATCHABLY() macro, which included a hidden 'return'.
By unwrapping this trivial macro, it makes the flow of control much
easier to understand.
I've also added an extra assert(!CATCH_GET), to emphasise that this
setting is reset following the JMPENV_PUSH() call.
Apart from that, there should be no functional differences.
Diffstat (limited to 'pod/perlinterp.pod')
0 files changed, 0 insertions, 0 deletions