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;
  
  
  

Reply via email to