summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2002-05-28 22:05:55 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2002-05-28 22:05:55 +0000
commitb881518d78374cbb36c0ad56c39aaca9fc97154d (patch)
tree1a432a18aad7a59a50e59425b898b5bf5f1c6040 /mg.c
parent4282de365ad3986f7690c8ae5aeb465272208972 (diff)
downloadperl-b881518d78374cbb36c0ad56c39aaca9fc97154d.tar.gz
Retract #16820, #16819, #16810, #16669, #16531, #16530, #16501
to restore some level of sanity in the tied scalars can of worms. p4raw-id: //depot/perl@16845
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/mg.c b/mg.c
index 617603409f..63de61249f 100644
--- a/mg.c
+++ b/mg.c
@@ -359,17 +359,8 @@ Perl_mg_free(pTHX_ SV *sv)
else if (mg->mg_len == HEf_SVKEY)
SvREFCNT_dec((SV*)mg->mg_ptr);
}
- if (mg->mg_flags & MGf_REFCOUNTED) {
- SV *obj = mg->mg_obj;
- if (mg->mg_type == PERL_MAGIC_tiedscalar && SvROK(obj) &&
- (SvRV(obj) == sv || GvIO(SvRV(obj)) == (IO *) sv)) {
- /* We are already free'ing the self-tied thing
- so must not SvREFCNT_dec.
- */
- SvROK_off(obj);
- } else
- SvREFCNT_dec(obj);
- }
+ if (mg->mg_flags & MGf_REFCOUNTED)
+ SvREFCNT_dec(mg->mg_obj);
Safefree(mg);
}
SvMAGIC(sv) = 0;