diff options
author | Karl Williamson <khw@khw-desktop.(none)> | 2010-07-11 11:25:25 -0600 |
---|---|---|
committer | Karl Williamson <khw@khw-desktop.(none)> | 2010-07-13 17:10:33 -0600 |
commit | 84374e300994574aae57659117b349a624cdc22c (patch) | |
tree | fd02a10d7068b03881ebc3818991aef14b38fac2 /hv.c | |
parent | 5ff2e4c00484f467453335cd2b906b7ce1e33a58 (diff) | |
download | perl-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