diff options
author | Tony Cook <tony@develop-help.com> | 2021-02-10 11:18:45 +1100 |
---|---|---|
committer | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2021-02-14 13:40:50 +0000 |
commit | 6b729d2440b795f848f610a8cc410a3f6be6388b (patch) | |
tree | 68143844990d5b45cbe0ceccf9b3fef2458a505a /embed.fnc | |
parent | 683e0651b057a7be4b2765ceb3d9f6617cd4c464 (diff) | |
download | perl-6b729d2440b795f848f610a8cc410a3f6be6388b.tar.gz |
try isn't treated as a sub call like eval is
The try change added code to pp_return to skip past try contexts
when looking for the sub/sort/eval context to return from.
This was only needed because cx_pusheval() sets si_cxsubix to the
current frame and try uses that function to push it's context, that
value is then used by the dopopto_cursub() macro to shortcut
walking the context stack.
Since we don't need to treat try as a sub for return, list vs array
checks or lvalue sub checks, don't set si_cxsubix on try.
Diffstat (limited to 'embed.fnc')
-rw-r--r-- | embed.fnc | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -3647,6 +3647,7 @@ Cixp |void |cx_pushformat |NN PERL_CONTEXT *cx|NN CV *cv \ Cixp |void |cx_popformat |NN PERL_CONTEXT *cx Cixp |void |cx_pusheval |NN PERL_CONTEXT *cx \ |NULLOK OP *retop|NULLOK SV *namesv +Cixp |void |cx_pushtry |NN PERL_CONTEXT *cx|NULLOK OP *retop Cixp |void |cx_popeval |NN PERL_CONTEXT *cx Cixp |void |cx_pushloop_plain|NN PERL_CONTEXT *cx Cixp |void |cx_pushloop_for |NN PERL_CONTEXT *cx \ |