summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2010-10-24 15:50:23 -0700
committerFather Chrysostomos <sprout@cpan.org>2010-10-24 16:18:40 -0700
commit2acc3314e31a9342e325f35c5b592967c9850c9b (patch)
tree9fb193068226872c7947a20c114b641a422d2bb2 /op.c
parente1be28b42dd83015ebd81dbeda258cc72f8dddf0 (diff)
downloadperl-2acc3314e31a9342e325f35c5b592967c9850c9b.tar.gz
[perl #77810] Scalars vs globs
Stop *{} from returning globs with the SVf_FAKE flag on. It removes three tests from t/op/gv.t (that I added) that test buggy edge cases that can no longer occur. It also modifies tests in t/io/defout.t to keep them passing. I am not sure that test script serves any purpose any more.
Diffstat (limited to 'op.c')
-rw-r--r--op.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/op.c b/op.c
index 469d48d0bd..f616761818 100644
--- a/op.c
+++ b/op.c
@@ -7290,6 +7290,8 @@ Perl_ck_rvconst(pTHX_ register OP *o)
#endif
kid->op_private = 0;
kid->op_ppaddr = PL_ppaddr[OP_GV];
+ /* FAKE globs in the symbol table cause weird bugs (#77810) */
+ SvFAKE_off(gv);
}
}
return o;