diff options
author | Sergey Skvortsov <skv@FreeBSD.org> | 2009-03-28 20:45:10 +0000 |
---|---|---|
committer | Sergey Skvortsov <skv@FreeBSD.org> | 2009-03-28 20:45:10 +0000 |
commit | 1a9ef9fa6754e0c0f087f4e7a76e65029a75941c (patch) | |
tree | e0596dfc5254e65a6f3de0b5eb6d25f4ad08a7d0 /lang/perl5.16/files/patch-sv.c | |
parent | Update to 20081128. Changes include: (diff) |
Introduce Perl 5.10.0
Notes
Notes:
svn path=/head/; revision=231213
Diffstat (limited to 'lang/perl5.16/files/patch-sv.c')
-rw-r--r-- | lang/perl5.16/files/patch-sv.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lang/perl5.16/files/patch-sv.c b/lang/perl5.16/files/patch-sv.c index 4a4a6d840d26..5ee260a4b4bd 100644 --- a/lang/perl5.16/files/patch-sv.c +++ b/lang/perl5.16/files/patch-sv.c @@ -1,21 +1,21 @@ --- sv.c +++ sv.c -@@ -9813,7 +9813,8 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param) +@@ -10421,7 +10421,8 @@ Perl_sv_dup(pTHX_ const SV *sstr, CLONE_PARAMS* param) IoBOTTOM_NAME(dstr) = SAVEPV(IoBOTTOM_NAME(dstr)); break; case SVt_PVAV: - if (AvARRAY((AV*)sstr)) { + /* avoid cloning an empty array */ -+ if (AvARRAY((AV*)sstr) && AvFILLp((AV*)sstr) >= 0) { ++ if (AvARRAY((AV *)sstr) && AvFILLp((AV *)sstr) >= 0) { SV **dst_ary, **src_ary; SSize_t items = AvFILLp((AV*)sstr) + 1; -@@ -9838,6 +9839,8 @@ Perl_sv_dup(pTHX_ SV *sstr, CLONE_PARAMS* param) +@@ -10446,6 +10447,8 @@ Perl_sv_dup(pTHX_ const SV *sstr, CLONE_PARAMS* param) else { - SvPV_set(dstr, NULL); + AvARRAY((AV*)dstr) = NULL; AvALLOC((AV*)dstr) = (SV**)NULL; + AvMAX( (AV *)dstr) = -1; + AvFILLp((AV *)dstr) = -1; } - AvARYLEN((AV*)dstr) = sv_dup_inc(AvARYLEN((AV*)sstr), param); break; + case SVt_PVHV: |