summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@khw-desktop.(none)>2010-07-11 11:25:25 -0600
committerKarl Williamson <khw@khw-desktop.(none)>2010-07-13 17:10:33 -0600
commit84374e300994574aae57659117b349a624cdc22c (patch)
treefd02a10d7068b03881ebc3818991aef14b38fac2 /hv.c
parent5ff2e4c00484f467453335cd2b906b7ce1e33a58 (diff)
downloadperl-84374e300994574aae57659117b349a624cdc22c.tar.gz
charnames: Fix scoping bugs
This was done by moving what could to %^H. Because data structures in %^H get stringified at runtime, new serialized entries for them had to be created and then unserialized on each runtime call. Also, because %^H is read-only at runtime, some data structures couldn't be moved to it. Things were set up so that these contain only things invariant under scoping, and looked at only when the same scoped options are in effect as when they were created. Further comments at declaration of %full_names_cache. I was well into this patch when it dawned on me that it was doing unnecessary tests, so that if (! a) { conditionally set a } if (! a) {} could be implemented more efficiently as if (! a) { conditionally set a } if (! a) {} } so I changed it, which messes up leading indentation for the diffs.
Diffstat (limited to 'hv.c')
0 files changed, 0 insertions, 0 deletions