This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate change #11519 from perlio:
[perl5.git] / pp_ctl.c
index 4970bd0..1605e21 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -147,11 +147,10 @@ PP(pp_regcomp)
 
     if (!PM_GETRE(pm)->prelen && PL_curpm)
        pm = PL_curpm;
+    else if (strEQ("\\s+", PM_GETRE(pm)->precomp))
+       pm->op_pmflags |= PMf_WHITE;
     else
-       if (strEQ("\\s+", PM_GETRE(pm)->precomp))
-           pm->op_pmflags |= PMf_WHITE;
-       else
-           pm->op_pmflags &= ~PMf_WHITE;
+       pm->op_pmflags &= ~PMf_WHITE;
 
     /* XXX runtime compiled output needs to move to the pad */
     if (pm->op_pmflags & PMf_KEEP) {
@@ -1552,7 +1551,7 @@ PP(pp_caller)
 
     if (MAXARG)
        count = POPi;
-    EXTEND(SP, 10);
+
     for (;;) {
        /* we may be in a higher stacklevel, so dig down deeper */
        while (cxix < 0 && top_si->si_type != PERLSI_MAIN) {
@@ -1561,8 +1560,10 @@ PP(pp_caller)
            cxix = dopoptosub_at(ccstack, top_si->si_cxix);
        }
        if (cxix < 0) {
-           if (GIMME != G_ARRAY)
+           if (GIMME != G_ARRAY) {
+               EXTEND(SP, 1);
                RETPUSHUNDEF;
+            }
            RETURN;
        }
        if (PL_DBsub && cxix >= 0 &&
@@ -1584,6 +1585,7 @@ PP(pp_caller)
 
     stashname = CopSTASHPV(cx->blk_oldcop);
     if (GIMME != G_ARRAY) {
+        EXTEND(SP, 1);
        if (!stashname)
            PUSHs(&PL_sv_undef);
        else {
@@ -1594,6 +1596,8 @@ PP(pp_caller)
        RETURN;
     }
 
+    EXTEND(SP, 10);
+
     if (!stashname)
        PUSHs(&PL_sv_undef);
     else