summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2013-08-06 06:08:21 -0700
committerFather Chrysostomos <sprout@cpan.org>2013-08-06 06:08:21 -0700
commit11609d9c96f9c025675f6215051ab94d6735ddd9 (patch)
tree08fa589b758a362e67cfcd1ba2860bc776acca4b /util.c
parent1cd19e121cab50d0b5b0e45a0c70cd9294a7ed9a (diff)
downloadperl-11609d9c96f9c025675f6215051ab94d6735ddd9.tar.gz
[perl #119169] index with __PACKAGE__ for 2nd argument
The refactoring of fbm_compile in 66379c06cd to prepare for c72a4eedff1 put in an SvIsCOW check before doing SvPV_force. I sim- ply changed the logic there so that SvPV_force would continue to have its effect but without tripping up on read-only variables for which SvPV_force would not need to make any changes anyway. Now, if a COW scalar is read-only, we can’t call SvPV_force on it, because it will die. It turns out that we don’t actually need to call SvPV_force on COWs. We can just go ahead and attach the BM magic and continue sharing the buffer.
Diffstat (limited to 'util.c')
-rw-r--r--util.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/util.c b/util.c
index be75796eda..316f45d5fe 100644
--- a/util.c
+++ b/util.c
@@ -539,7 +539,7 @@ Perl_fbm_compile(pTHX_ SV *sv, U32 flags)
if (mg && mg->mg_len >= 0)
mg->mg_len++;
}
- if (!SvPOK(sv) || SvNIOKp(sv) || SvIsCOW(sv))
+ if (!SvPOK(sv) || SvNIOKp(sv))
s = (U8*)SvPV_force_mutable(sv, len);
else s = (U8 *)SvPV_mutable(sv, len);
if (len == 0) /* TAIL might be on a zero-length string. */