This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make SvIsCOW honest about globs
[perl5.git] / sv.h
diff --git a/sv.h b/sv.h
index 5f58935..7686d4e 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -1738,8 +1738,8 @@ Like sv_utf8_upgrade, but doesn't do magic on C<sv>
 #  define SvTRUEx(sv) ((PL_Sv = (sv)), SvTRUE(PL_Sv))
 #endif /* __GNU__ */
 
-#define SvIsCOW(sv)            ((SvFLAGS(sv) & (SVf_FAKE | SVf_READONLY)) == \
-                                   (SVf_FAKE | SVf_READONLY))
+#define SvIsCOW(sv)    ((SvFLAGS(sv) & (SVf_FAKE | SVf_READONLY)) == \
+                          (SVf_FAKE | SVf_READONLY) && !isGV_with_GP(sv))
 #define SvIsCOW_shared_hash(sv)        (SvIsCOW(sv) && SvLEN(sv) == 0)
 
 #define SvSHARED_HEK_FROM_PV(pvx) \