summaryrefslogtreecommitdiff
path: root/pad.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2012-08-22 16:24:37 -0700
committerFather Chrysostomos <sprout@cpan.org>2012-08-22 16:24:37 -0700
commitc44737a23e8184d44143ac18e378a12912e6e9e8 (patch)
treef98cabf338baedd2fffebf172ef50d8f2047f383 /pad.c
parenta91428a4cd72ac808bcbe6f7ef7fc9fe7971c938 (diff)
downloadperl-c44737a23e8184d44143ac18e378a12912e6e9e8.tar.gz
pad.[ch]: PADNAME_OUTER
I think this is the last bit of pad-as-sv stuff that was not abstracted away in pad-specific macros.
Diffstat (limited to 'pad.c')
-rw-r--r--pad.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pad.c b/pad.c
index b3bbf35c03..fd8b178e12 100644
--- a/pad.c
+++ b/pad.c
@@ -85,7 +85,8 @@ SvOURSTASH slot pointing at the stash of the associated global (so that
duplicate C<our> declarations in the same package can be detected). SvUVX is
sometimes hijacked to store the generation number during compilation.
-If SvFAKE is set on the name SV, then that slot in the frame AV is
+If PADNAME_OUTER (SvFAKE) is set on the
+name SV, then that slot in the frame AV is
a REFCNT'ed reference to a lexical from "outside". In this case,
the name SV does not use xlow and xhigh to store a cop_seq range, since it is
in scope throughout. Instead xhigh stores some flags containing info about
@@ -96,7 +97,8 @@ cloning quicker.
If the 'name' is '&' the corresponding entry in the PAD
is a CV representing a possible closure.
-(SvFAKE and name of '&' is not a meaningful combination currently but could
+(PADNAME_OUTER and name of '&' is not a
+meaningful combination currently but could
become so if C<my sub foo {}> is implemented.)
Note that formats are treated as anon subs, and are cloned each time