This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert "More generalized fix for #127855"
authorDavid Mitchell <davem@iabyn.com>
Mon, 2 May 2016 08:30:40 +0000 (09:30 +0100)
committerRicardo Signes <rjbs@cpan.org>
Tue, 3 May 2016 15:23:02 +0000 (11:23 -0400)
This reverts commit bcc9f606509ad2fad50e16f081103451b7dc49e1.

This and the next commit revert the two commits that were an original fix
for RT #127855, but which is fixed in a different way in a following
commit.  See the ticket for more details.

sv.c
sv.h

diff --git a/sv.c b/sv.c
index 0200679..68df702 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -4891,7 +4891,7 @@ Perl_sv_setpvn(pTHX_ SV *const sv, const char *const ptr, const STRLEN len)
     }
     SvUPGRADE(sv, SVt_PV);
 
-    dptr = SvGROW(sv, len + 1);
+    dptr = SvGROW(sv, len + 2);
     Move(ptr,dptr,len,char);
     dptr[len] = '\0';
     SvCUR_set(sv, len);
diff --git a/sv.h b/sv.h
index 0c6e6d4..bfda6bf 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -2111,15 +2111,12 @@ See also C<L</PL_sv_yes>> and C<L</PL_sv_no>>.
 
 #ifdef PERL_ANY_COW
 # define SvGROW(sv,len) \
-        (SvIsCOW(sv) || SvLEN(sv) < ((len)+2) ? sv_grow(sv,(len)+2) : SvPVX(sv))
-# define SvGROW_mutable(sv,len) \
-    (SvLEN(sv) < ((len)+2) ? sv_grow(sv,(len)+2) : SvPVX_mutable(sv))
+       (SvIsCOW(sv) || SvLEN(sv) < (len) ? sv_grow(sv,len) : SvPVX(sv))
 #else
-# define SvGROW(sv,len) \
-    (SvLEN(sv) < ((len)+1) ? sv_grow(sv,(len)+1) : SvPVX(sv))
-# define SvGROW_mutable(sv,len) \
-    (SvLEN(sv) < ((len)+1) ? sv_grow(sv,(len)+1) : SvPVX_mutable(sv))
+# define SvGROW(sv,len) (SvLEN(sv) < (len) ? sv_grow(sv,len) : SvPVX(sv))
 #endif
+#define SvGROW_mutable(sv,len) \
+    (SvLEN(sv) < (len) ? sv_grow(sv,len) : SvPVX_mutable(sv))
 #define Sv_Grow sv_grow
 
 #define CLONEf_COPY_STACKS 1