diff options
author | Nicholas Clark <nick@ccl4.org> | 2007-09-19 08:12:09 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2007-09-19 08:12:09 +0000 |
commit | b54b4831042e3002a143d3fcff13b3bad5088c70 (patch) | |
tree | 27aa8960a156889eaaaf419ba915c98f63217bf0 /cop.h | |
parent | 821f5ffa2f9d60b548dcc3fae13ebf47b1875d04 (diff) | |
download | perl-b54b4831042e3002a143d3fcff13b3bad5088c70.tar.gz |
For an LVALUE fetch, "hv_fetch()" will recurse into "hv_store()" for a
hash with magic. Field hashes have u magic, so this recursion triggers.
However, key conversion replaces the original key with the converted
key, so we need to ensure that conversion happens exactly once, else
for a non-idempotent key conversion routine (eg ROT13) we will see
double conversion in this case.
p4raw-id: //depot/perl@31898
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -716,7 +716,9 @@ L<perlcall>. #define G_VOID 128 /* skip this bit when adding flags below */ /* extra flags for Perl_call_* routines */ -#define G_DISCARD 2 /* Call FREETMPS. */ +#define G_DISCARD 2 /* Call FREETMPS. + Don't change this without consulting the + hash actions codes defined in hv.h */ #define G_EVAL 4 /* Assume eval {} around subroutine call. */ #define G_NOARGS 8 /* Don't construct a @_ array. */ #define G_KEEPERR 16 /* Append errors to $@, don't overwrite it */ |