[perl #50538] when( @n && %n ) fails to smart match
[p5sagit/p5-mst-13.2.git] / pp_hot.c
index 61324bf..89bab4e 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -39,14 +39,7 @@ PP(pp_const)
 {
     dVAR;
     dSP;
-    if ( PL_op->op_flags & OPf_SPECIAL )
-        /* This is a const op added to hold the hints hash for
-           pp_entereval. The hash can be modified by the code
-           being eval'ed, so we return a copy instead. */
-        mXPUSHs((SV*)Perl_hv_copy_hints_hv(aTHX_ (HV*)cSVOP_sv));
-    else
-        /* Normal const. */
-        XPUSHs(cSVOP_sv);
+    XPUSHs(cSVOP_sv);
     RETURN;
 }
 
@@ -2735,14 +2728,9 @@ PP(pp_entersub)
        }
        /* should call AUTOLOAD now? */
        else {
-try_autoload: 
-         {
-           const bool is_method = cLISTOP->op_last &&
-               (cLISTOP->op_last->op_type == OP_METHOD_NAMED ||
-                cLISTOP->op_last->op_type == OP_METHOD);
-
+try_autoload:
            if ((autogv = gv_autoload4(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv),
-                                  is_method)))
+                                  FALSE)))
            {
                cv = GvCV(autogv);
            }
@@ -2752,7 +2740,6 @@ try_autoload:
                gv_efullname3(sub_name, gv, NULL);
                DIE(aTHX_ "Undefined subroutine &%"SVf" called", SVfARG(sub_name));
            }
-         }
        }
        if (!cv)
            DIE(aTHX_ "Not a CODE reference");
@@ -2834,10 +2821,6 @@ try_autoload:
        if (CvDEPTH(cv) == PERL_SUB_DEPTH_WARN && ckWARN(WARN_RECURSION)
            && !(PERLDB_SUB && cv == GvCV(PL_DBsub)))
            sub_crush_depth(cv);
-#if 0
-       DEBUG_S(PerlIO_printf(Perl_debug_log,
-                             "%p entersub returning %p\n", (void*)thr, (void*)CvSTART(cv)));
-#endif
        RETURNOP(CvSTART(cv));
     }
     else {