summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-09-19 08:12:09 +0000
committerNicholas Clark <nick@ccl4.org>2007-09-19 08:12:09 +0000
commitb54b4831042e3002a143d3fcff13b3bad5088c70 (patch)
tree27aa8960a156889eaaaf419ba915c98f63217bf0 /cop.h
parent821f5ffa2f9d60b548dcc3fae13ebf47b1875d04 (diff)
downloadperl-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.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/cop.h b/cop.h
index 725aab460e..554d4fc1da 100644
--- a/cop.h
+++ b/cop.h
@@ -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 */