This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Partially revert 4155e4fe
authorFather Chrysostomos <sprout@cpan.org>
Mon, 31 Jan 2011 02:57:35 +0000 (18:57 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Mon, 31 Jan 2011 02:58:20 +0000 (18:58 -0800)
This disables the fix for [perl #36347], which made sure that unrefer-
enced objects were DESTROYed, marking the tests as to-do.

This bug fix broke three CPAN modules. I will probably not have time
to fix them before 5.14, so disabling the fix until after 5.14 seems
the safest option.

This resolves [perl #82542] and other related tickets.

sv.c
t/op/ref.t

diff --git a/sv.c b/sv.c
index 1c5a0f1..fe096ba 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -582,7 +582,9 @@ Perl_sv_clean_objs(pTHX)
     visit(do_clean_named_io_objs, SVt_PVGV|SVpgv_GP, SVTYPEMASK|SVp_POK|SVpgv_GP);
     /* And if there are some very tenacious barnacles clinging to arrays,
        closures, or what have you.... */
+    /* XXX This line breaks Tk and Gtk2. See [perl #82542].
     visit(do_curse, SVs_OBJECT, SVs_OBJECT);
+    */
     olddef = PL_defoutgv;
     PL_defoutgv = NULL; /* disable skip of PL_defoutgv */
     if (olddef && isGV_with_GP(olddef))
index bcd121a..0f6a7a5 100644 (file)
@@ -379,6 +379,7 @@ curr_test($test + 2);
 # test that DESTROY is called on all objects during global destruction,
 # even those without hard references [perl #36347]
 
+$TODO = 'bug #36347';
 is(
   runperl(
    stderr => 1, prog => 'sub DESTROY { print qq-aaa\n- } bless \$a[0]'
@@ -393,7 +394,7 @@ is(
  "aaa\n",
  'DESTROY called on closure variable'
 );
-
+$TODO = undef;
 
 # test if refgen behaves with autoviv magic
 {