summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2014-11-24 00:00:51 -0800
committerFather Chrysostomos <sprout@cpan.org>2014-11-30 11:48:37 -0800
commit2502ffdfca07fac6972c9b2da7ae160d011c2877 (patch)
tree36550c7148dabae1b2a8fe766a5b64e523657c6f /ext
parent09c676d973b724f9d8bc07dbb1b115dd8920d5f5 (diff)
downloadperl-2502ffdfca07fac6972c9b2da7ae160d011c2877.tar.gz
Make pad names always UTF8
Prior to 5.16, pad names never used the UTF8 flag, and all non-ASCII pad names were in UTF8. Because the latter was consistently true, everything just worked anyway. In 5.16, UTF8 handling was done ‘properly’, so that non-ASCII UTF8 strings were always accompanied by the UTF8 flag. Now, it is still the case that the only non-ASCII names to make their way into pad name code are in UTF8. Since ASCII is a subset of UTF8, we effectively *always* have UTF8 pad names. So the flag handling is actually redundant. If we just assume that all pad names are UTF8 (which is true), then we don’t need to bother with the flag checking. There is actually no reason why we should have two different encodings for storing pad names. So this commit enforces what has always been the case and removes the extra code for converting between Latin-1 and UTF8. Nothing on CPAN is using the UTF8 flag with pads, so nothing should break. In fact, we never documented padadd_UTF8_NAME.
Diffstat (limited to 'ext')
-rw-r--r--ext/XS-APItest/t/fetch_pad_names.t24
1 files changed, 12 insertions, 12 deletions
diff --git a/ext/XS-APItest/t/fetch_pad_names.t b/ext/XS-APItest/t/fetch_pad_names.t
index 3d42280952..fb6dcdbfed 100644
--- a/ext/XS-APItest/t/fetch_pad_names.t
+++ b/ext/XS-APItest/t/fetch_pad_names.t
@@ -41,8 +41,8 @@ general_tests( $cv->(), $names_av, {
],
pad_size => {
total => { cmp => 2, msg => 'Sub has two lexicals.' },
- utf8 => { cmp => 0, msg => 'Sub has no UTF-8 encoded vars.' },
- invariant => { cmp => 2, msg => 'Sub has two invariant vars.' },
+ utf8 => { cmp => 2, msg => 'Sub has only UTF-8 vars.' },
+ invariant => { cmp => 0, msg => 'Sub has no invariant vars.' },
},
vars => [
{ name => '$zest', msg => 'Sub has [\$zest].', type => 'ok' },
@@ -79,8 +79,8 @@ general_tests( $cv->(), $names_av, {
],
pad_size => {
total => { cmp => 2, msg => 'Sub has two lexicals, including those it closed over.' },
- utf8 => { cmp => 1, msg => 'UTF-8 in the pad.' },
- invariant => { cmp => 1, msg => '' },
+ utf8 => { cmp => 2, msg => 'UTF-8 in the pad.' },
+ invariant => { cmp => 0, msg => '' },
},
vars => [
{ name => '$ascii', msg => 'Sub has [$ascii].', type => 'ok' },
@@ -120,8 +120,8 @@ general_tests( $cv->(), $names_av, {
],
pad_size => {
total => { cmp => 2, msg => 'Sub has two lexicals' },
- utf8 => { cmp => 0, msg => 'Latin-1 not upgraded to UTF-8.' },
- invariant => { cmp => 2, msg => '' },
+ utf8 => { cmp => 2, msg => 'Latin-1 got upgraded to UTF-8.' },
+ invariant => { cmp => 0, msg => '' },
},
vars => [
{ name => '$Leon', msg => 'Sub has [$Leon].', type => 'ok' },
@@ -153,8 +153,8 @@ END_EVAL
results => [ ({ SKIP => 1 }) x 3 ],
pad_size => {
total => { cmp => 1, msg => 'Sub has one lexical, which it closed over.' },
- utf8 => { cmp => 0, msg => '' },
- invariant => { cmp => 1, msg => '' },
+ utf8 => { cmp => 1, msg => '' },
+ invariant => { cmp => 0, msg => '' },
},
vars => [
{ name => '$Ceon', msg => "Sub doesn't have [\$Ceon].", type => 'not ok' },
@@ -189,8 +189,8 @@ general_tests( $cv->(), $names_av, {
],
pad_size => {
total => { cmp => 3, msg => 'Sub has three lexicals.' },
- utf8 => { cmp => 1, msg => 'Japanese stored as UTF-8.' },
- invariant => { cmp => 2, msg => '' },
+ utf8 => { cmp => 3, msg => 'Japanese stored as UTF-8.' },
+ invariant => { cmp => 0, msg => '' },
},
vars => [
{ name => "\$\x{6226}\x{56fd}", msg => "Sub has [\$\x{6226}\x{56fd}].", type => 'ok' },
@@ -236,8 +236,8 @@ general_tests( $cv->(), $names_av, {
],
pad_size => {
total => { cmp => 1, msg => 'Sub has one lexical.' },
- utf8 => { cmp => 0, msg => '' },
- invariant => { cmp => 1, msg => '' },
+ utf8 => { cmp => 1, msg => '' },
+ invariant => { cmp => 0, msg => '' },
},
vars => [],
});