stas 2003/12/19 17:28:43
Modified: lib/Apache compat.pm
Log:
a buggy threaded perl gets upset when deleting a hash entry (after perl_clone
and CLONE) and assigning to something else. doing it in two steps keeps it happy.
Revision Changes Path
1.94 +6 -1 modperl-2.0/lib/Apache/compat.pm
Index: compat.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/Apache/compat.pm,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -u -r1.93 -r1.94
--- compat.pm 19 Dec 2003 02:40:42 -0000 1.93
+++ compat.pm 20 Dec 2003 01:28:43 -0000 1.94
@@ -182,7 +182,12 @@
"as it has not been overridden";
next;
}
- my $original_sub = delete $overridden_mp2_api{$sub};
+ # XXX: 5.8.2+ can't delete and assign at once - gives:
+ # Attempt to free unreferenced scalar
+ # after perl_clone. the 2 step works ok. to reproduce:
+ # t/TEST -maxclients 1 perl/ithreads2.t compat/request.t
+ my $original_sub = $overridden_mp2_api{$sub};
+ delete $overridden_mp2_api{$sub};
no warnings 'redefine';
no strict 'refs';
*$sub = $original_sub;