diff options
author | David Mitchell <davem@iabyn.com> | 2015-10-15 14:28:28 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2016-02-03 08:59:43 +0000 |
commit | 76d1013142ea50e7328ee8ae3fd351a40aacaff5 (patch) | |
tree | 1fd59302202b8f887b14207abbae1184a86e12cc /pp_ctl.c | |
parent | 0bd863d8ca9a7ab3337115aefd3f333f3229e50b (diff) | |
download | perl-76d1013142ea50e7328ee8ae3fd351a40aacaff5.tar.gz |
dowinwind(): move common CX_LEAVE_SCOPE() outside
Now the every branch in the switch does CX_LEAVE_SCOPE(cx), hoist it
above the satrt of the switch.
Diffstat (limited to 'pp_ctl.c')
-rw-r--r-- | pp_ctl.c | 12 |
1 files changed, 3 insertions, 9 deletions
@@ -1510,44 +1510,38 @@ Perl_dounwind(pTHX_ I32 cxix) PERL_CONTEXT *cx = &cxstack[cxstack_ix]; DEBUG_CX("UNWIND"); \ /* Note: we don't need to restore the base context info till the end. */ + + CX_LEAVE_SCOPE(cx); + switch (CxTYPE(cx)) { case CXt_SUBST: - CX_LEAVE_SCOPE(cx); POPSUBST(cx); continue; /* not break */ case CXt_SUB: - CX_LEAVE_SCOPE(cx); POPSUB(cx); break; case CXt_EVAL: - CX_LEAVE_SCOPE(cx); POPEVAL(cx); break; case CXt_BLOCK: - CX_LEAVE_SCOPE(cx); POPBASICBLK(cx); break; case CXt_LOOP_LAZYIV: case CXt_LOOP_LAZYSV: case CXt_LOOP_FOR: case CXt_LOOP_PLAIN: - CX_LEAVE_SCOPE(cx); POPLOOP(cx); break; case CXt_WHEN: - CX_LEAVE_SCOPE(cx); POPWHEN(cx); break; case CXt_GIVEN: - CX_LEAVE_SCOPE(cx); POPGIVEN(cx); break; case CXt_NULL: /* there isn't a POPNULL ! */ - CX_LEAVE_SCOPE(cx); break; case CXt_FORMAT: - CX_LEAVE_SCOPE(cx); POPFORMAT(cx); break; } |