diff options
author | Nicholas Clark <nick@ccl4.org> | 2004-03-23 16:05:28 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2004-03-23 16:05:28 +0000 |
commit | 4ac6efe6a6c1b2863c78d1bdeea777d72325d712 (patch) | |
tree | 88872fe3c26e15aa80a364e9b7cccf887a76b5ca /ext | |
parent | 547d1dd82362229be47f8169355ee7b5b98dd403 (diff) | |
download | perl-4ac6efe6a6c1b2863c78d1bdeea777d72325d712.tar.gz |
Unify 5.008 and 5.009's B::Concise 0.56
p4raw-id: //depot/perl@22565
Diffstat (limited to 'ext')
-rw-r--r-- | ext/B/B/Concise.pm | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ext/B/B/Concise.pm b/ext/B/B/Concise.pm index 7736f96f81..b458259a47 100644 --- a/ext/B/B/Concise.pm +++ b/ext/B/B/Concise.pm @@ -435,6 +435,7 @@ $priv{$_}{128} = "LVINTRO" "padav", "padhv", "enteriter"); $priv{$_}{64} = "REFC" for ("leave", "leavesub", "leavesublv", "leavewrite"); $priv{"aassign"}{64} = "COMMON"; +$priv{"aassign"}{32} = "PHASH" if $] < 5.009; $priv{"sassign"}{64} = "BKWARD"; $priv{$_}{64} = "RTIME" for ("match", "subst", "substcont"); @{$priv{"trans"}}{1,2,4,8,16,64} = ("<UTF", ">UTF", "IDENT", "SQUASH", "DEL", @@ -558,11 +559,17 @@ sub concise_op { if (defined $padname and class($padname) ne "SPECIAL") { $h{targarg} = $padname->PVX; if ($padname->FLAGS & SVf_FAKE) { - my $fake = ''; - $fake .= 'a' if $padname->IVX & 1; # PAD_FAKELEX_ANON - $fake .= 'm' if $padname->IVX & 2; # PAD_FAKELEX_MULTI - $fake .= ':' . $padname->NVX if $curcv->CvFLAGS & CVf_ANON; - $h{targarglife} = "$h{targarg}:FAKE:$fake"; + if ($] < 5.009) { + $h{targarglife} = "$h{targarg}:FAKE"; + } else { + # These changes relate to the jumbo closure fix. + # See changes 19939 and 20005 + my $fake = ''; + $fake .= 'a' if $padname->IVX & 1; # PAD_FAKELEX_ANON + $fake .= 'm' if $padname->IVX & 2; # PAD_FAKELEX_MULTI + $fake .= ':' . $padname->NVX if $curcv->CvFLAGS & CVf_ANON; + $h{targarglife} = "$h{targarg}:FAKE:$fake"; + } } else { my $intro = $padname->NVX - $cop_seq_base; |