summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-07-14 21:49:08 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-07-14 21:49:39 -0700
commiteebd3bc0dfa10c5d80023c98a5e80dc4fb6689ca (patch)
tree2585d5a81ae97c0fa2dfdb5fcd1b459533634c33 /cop.h
parentfe3772c388e259ff8210505dc7e865853c277e69 (diff)
downloadperl-eebd3bc0dfa10c5d80023c98a5e80dc4fb6689ca.tar.gz
Change was_lvalue_sub back to X; spell out the only use of it
OK, now I understand what’s happening. If there is a public macro (PUSHSUB) that contains a call to a pri- vate function (was_lvalue_sub), that function has to be exported, so that non-core code can call it. But if it is marked X, there is no was_lvalue_sub shorthand macro visible to non-core code, so when the PUSHSUB macro is expanded in such code, the was_lvalue_sub(...) bit becomes a call to the function literally named was_lvalue_sub, as opposed to Perl_lvalue_sub (and is compiled that way on forgiving platforms). Making it A makes that macro available to non-core code, but also implies that it is available for direct use by extensions, which is not the case with was_lvalue_sub. So, this commit makes it X again, but spells it out in PUSHSUB, so there is no need for the function’s macro to be available when PUSHSUB is expanded. Hence, there is no need for the was_lvalue_sub macro to exist, so this commit also removes it. See also these three commits: c73b0699db 7b70e81778 777d901444
Diffstat (limited to 'cop.h')
-rw-r--r--cop.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/cop.h b/cop.h
index d261edf13b..e6650a2400 100644
--- a/cop.h
+++ b/cop.h
@@ -640,7 +640,7 @@ struct block_format {
(PL_op->op_flags & OPf_WANT) \
? OPpENTERSUB_LVAL_MASK \
: !(PL_op->op_private & OPpENTERSUB_LVAL_MASK) \
- ? 0 : was_lvalue_sub(); \
+ ? 0 : Perl_was_lvalue_sub(aTHX); \
PUSHSUB_BASE(cx) \
cx->blk_u16 = PL_op->op_private & \
(phlags|OPpENTERSUB_DEREF); \