summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-05-30 23:01:39 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-05-30 23:01:39 -0700
commita0aa6076c554bfbd5053136f26077d9c58b3526e (patch)
tree8c153e41cd018b87c35c8f5bb65b7c286294d0c5 /pp_hot.c
parentb724cc14b25929aee44eee20bd26102cceb520b6 (diff)
downloadperl-a0aa6076c554bfbd5053136f26077d9c58b3526e.tar.gz
Allow lvalue subs to return COWs in list context
Commit f71f472 missed list assignment. :-(
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/pp_hot.c b/pp_hot.c
index 9730af74f5..75811a27f4 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2745,7 +2745,11 @@ PP(pp_leavesublv)
EXTEND_MORTAL(SP - newsp);
for (mark = newsp + 1; mark <= SP; mark++) {
if (*mark != &PL_sv_undef
- && SvFLAGS(*mark) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY)) {
+ && (SvFLAGS(*mark) & (SVs_TEMP | SVs_PADTMP)
+ || (SvFLAGS(*mark) & (SVf_READONLY|SVf_FAKE))
+ == SVf_READONLY
+ )
+ ) {
/* Might be flattened array after $#array = */
PUTBACK;
LEAVE;