In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/7d1d69cb1e59690060fc6368ef3969a206c87c50?hp=127c4457c66a643f80802db7421deb38875cb3a5>

- Log -----------------------------------------------------------------
commit 7d1d69cb1e59690060fc6368ef3969a206c87c50
Author: David Mitchell <[email protected]>
Date:   Fri Sep 6 15:54:10 2013 +0100

    pp_goto: document the different branches
    
    Te various different forms of goto (and dump) take different branches
    through this big function. Document which branches handle which variants.
    Also document the use of OPf_SPECIAL in OP_DUMP.
-----------------------------------------------------------------------

Summary of changes:
 op.h     | 1 +
 pp_ctl.c | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/op.h b/op.h
index 038d908..08d46f9 100644
--- a/op.h
+++ b/op.h
@@ -143,6 +143,7 @@ Deprecated.  Use C<GIMME_V> instead.
                                    - After ck_glob, use Perl glob function
                                 */
                                 /*  On OP_PADRANGE, push @_ */
+                                /*  On OP_DUMP, has no label */
 
 /* old names; don't use in new code, but don't break them, either */
 #define OPf_LIST       OPf_WANT_LIST
diff --git a/pp_ctl.c b/pp_ctl.c
index d091e29..24a8cd6 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2776,7 +2776,7 @@ S_dofindlabel(pTHX_ OP *o, const char *label, STRLEN len, 
U32 flags, OP **opstac
     return 0;
 }
 
-PP(pp_goto)
+PP(pp_goto) /* also pp_dump */
 {
     dVAR; dSP;
     OP *retop = NULL;
@@ -2791,6 +2791,8 @@ PP(pp_goto)
     static const char* const must_have_label = "goto must have label";
 
     if (PL_op->op_flags & OPf_STACKED) {
+        /* goto EXPR  or  goto &foo */
+
        SV * const sv = POPs;
        SvGETMAGIC(sv);
 
@@ -2986,11 +2988,13 @@ PP(pp_goto)
            }
        }
        else {
+            /* goto EXPR */
            label       = SvPV_nomg_const(sv, label_len);
             label_flags = SvUTF8(sv);
        }
     }
     else if (!(PL_op->op_flags & OPf_SPECIAL)) {
+        /* goto LABEL  or  dump LABEL */
        label       = cPVOP->op_pv;
         label_flags = (cPVOP->op_private & OPpPV_IS_UTF8) ? SVf_UTF8 : 0;
         label_len   = strlen(label);

--
Perl5 Master Repository

Reply via email to