diff options
author | Jan-Pieter Cornet <johnpc@xs4all.nl> | 1998-03-18 02:24:20 +0100 |
---|---|---|
committer | Malcolm Beattie <mbeattie@sable.ox.ac.uk> | 1998-04-03 11:53:00 +0000 |
commit | 51ae5c030790e9d7687dbb390fdaa072649341b3 (patch) | |
tree | 70d995ed57c21355d3b8a54d363177f9e6917e15 /sv.c | |
parent | b64b6983ac5158399d45f7db55bc0794e3122323 (diff) | |
download | perl-51ae5c030790e9d7687dbb390fdaa072649341b3.tar.gz |
Perl 5.005b1t2/perl5.004_63 (resend)
p4raw-id: //depot/perl@869
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -335,8 +335,19 @@ do_clean_objs(SV *sv) static void do_clean_named_objs(SV *sv) { - if (SvTYPE(sv) == SVt_PVGV && GvSV(sv)) - do_clean_objs(GvSV(sv)); + if (SvTYPE(sv) == SVt_PVGV) { + if ( SvOBJECT(GvSV(sv)) || + GvAV(sv) && SvOBJECT(GvAV(sv)) || + GvHV(sv) && SvOBJECT(GvHV(sv)) || + GvIO(sv) && SvOBJECT(GvIO(sv)) || + GvCV(sv) && SvOBJECT(GvCV(sv)) ) + { + DEBUG_D((PerlIO_printf(Perl_debug_log, "Cleaning named glob object:\n "), sv_dump(sv));) + SvREFCNT_dec(sv); + } + else if (GvSV(sv)) + do_clean_objs(GvSV(sv)); + } } #endif |