summaryrefslogtreecommitdiff
path: root/pod/perlinterp.pod
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2022-05-12 14:04:27 +0100
committerDavid Mitchell <davem@iabyn.com>2022-06-20 11:16:46 +0100
commita6ceaeb95aed574844bcfa9b9779650ed7fb5c63 (patch)
tree546071fe9b4a18c3d2647c9e69bb637d29673658 /pod/perlinterp.pod
parent5fd637ce8c4db075c0668d9f9c806f6712cd3c7f (diff)
downloadperl-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