summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-06-30 13:15:59 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-06-30 13:15:59 +0000
commit05bd410391c3da3a732fa3cd37852e51526dd8b4 (patch)
tree37fb828b57b192c66107539286bf083615b34915 /sv.c
parent9c55cb5993369dcce3cc192d35605d25b4a3b8df (diff)
downloadperl-05bd410391c3da3a732fa3cd37852e51526dd8b4.tar.gz
The #11040 had slipped to a wrong function...
p4raw-id: //depot/perl@11043
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/sv.c b/sv.c
index 207b955aed..ef046875f1 100644
--- a/sv.c
+++ b/sv.c
@@ -8440,6 +8440,18 @@ Perl_mg_dup(pTHX_ MAGIC *mg, clone_params* param)
if (mg->mg_type == PERL_MAGIC_qr) {
nmg->mg_obj = (SV*)re_dup((REGEXP*)mg->mg_obj);
}
+ else if(mg->mg_type == PERL_MAGIC_backref) {
+ AV *av = (AV*) mg->mg_obj;
+ SV **svp;
+ I32 i;
+ nmg->mg_obj = (SV*)newAV();
+ svp = AvARRAY(av);
+ i = AvFILLp(av);
+ while (i >= 0) {
+ av_push((AV*)nmg->mg_obj,sv_dup(svp[i],param));
+ i--;
+ }
+ }
else {
nmg->mg_obj = (mg->mg_flags & MGf_REFCOUNTED)
? sv_dup_inc(mg->mg_obj, param)
@@ -8628,18 +8640,6 @@ S_gv_share(pTHX_ SV *sstr)
else if (!GvCV(gv)) {
GvCV(gv) = (CV*)sv;
}
- else if(mg->mg_type == PERL_MAGIC_backref) {
- AV *av = (AV*) mg->mg_obj;
- SV **svp;
- I32 i;
- nmg->mg_obj = (SV*)newAV();
- svp = AvARRAY(av);
- i = AvFILLp(av);
- while (i >= 0) {
- av_push((AV*)nmg->mg_obj,sv_dup(svp[i],param));
- i--;
- }
- }
else {
/* CvPADLISTs cannot be shared */
if (!CvXSUB(GvCV(gv))) {