summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Sugars <bsugars@canoe.ca>2001-04-23 12:59:33 -0400
committerJarkko Hietaniemi <jhi@iki.fi>2001-04-26 17:47:26 +0000
commit1db89ea5df5f66c75fe36cf6f250c2a633707cee (patch)
tree29fb4ea0cd5d859584c9bb3aee0ea57d4d3b2de5
parent79d09e5e72b8f20aaac9125295c3db0d623fb72d (diff)
downloadperl-1db89ea5df5f66c75fe36cf6f250c2a633707cee.tar.gz
Re: Short test case for undef %stash:: crash
Message-ID: <Pine.LNX.4.21.0104231623520.790-100000@marmot.rim.canoe.ca> Changed and moved the perldiag entry. p4raw-id: //depot/perl@9854
-rw-r--r--gv.c2
-rw-r--r--pod/perldiag.pod6
2 files changed, 8 insertions, 0 deletions
diff --git a/gv.c b/gv.c
index 117667c07d..eafd982cb2 100644
--- a/gv.c
+++ b/gv.c
@@ -190,6 +190,8 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level)
if (!stash)
return 0;
+ if (!HvNAME(stash))
+ Perl_croak(aTHX_ "Can't use anonymous symbol table for method lookup");
if ((level > 100) || (level < -100))
Perl_croak(aTHX_ "Recursive inheritance detected while looking for method '%s' in package '%s'",
name, HvNAME(stash));
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 98b25807e9..524c2bd3a9 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -994,6 +994,12 @@ calling sv_upgrade.
(F) A value used as either a hard reference or a symbolic reference must
be a defined value. This helps to delurk some insidious errors.
+=item Can't use anonymous symbol table for method lookup
+
+(P) The internal routine that does method lookup was handed a symbol
+table that doesn't have a name. Symbol tables can become anonymous
+for example by undefining stashes: C<undef %Some::Package::>.
+
=item Can't use bareword ("%s") as %s ref while "strict refs" in use
(F) Only hard references are allowed by "strict refs". Symbolic