summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorRick Delaney <rick@consumercontact.com>2007-10-30 13:19:40 -0700
committerSteve Peters <steve@fisharerojo.org>2008-02-13 18:39:50 +0000
commit781e3f050073176aa21ffc243184a1cb57f4ec92 (patch)
tree17bc74c72eb39bef0f518ff182db7c0e0f0549f0 /pp_hot.c
parentcae86ea86570588a52f7ce8a0a01b6eb824103df (diff)
downloadperl-781e3f050073176aa21ffc243184a1cb57f4ec92.tar.gz
[perl #47047] Use of inherited AUTOLOAD for non-method is deprecated
From: Rick Delaney (via RT) <perlbug-followup@perl.org> Message-ID: <rt-3.6.HEAD-24634-1193800780-55.47047-75-0@perl.org> p4raw-id: //depot/perl@33302
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/pp_hot.c b/pp_hot.c
index cd1a885f67..61324bfc80 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2735,9 +2735,14 @@ PP(pp_entersub)
}
/* should call AUTOLOAD now? */
else {
-try_autoload:
+try_autoload:
+ {
+ const bool is_method = cLISTOP->op_last &&
+ (cLISTOP->op_last->op_type == OP_METHOD_NAMED ||
+ cLISTOP->op_last->op_type == OP_METHOD);
+
if ((autogv = gv_autoload4(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv),
- FALSE)))
+ is_method)))
{
cv = GvCV(autogv);
}
@@ -2747,6 +2752,7 @@ 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");