On Sun, Dec 21, 2003 at 02:22:09PM -0500, Chip Salzenberg wrote: > According to Nicholas Clark via RT: > > There has been no feedback on this. > > It works! I could have sworn I mailed back to you about it... Maybe I deleted it by accident. Not that it's important now. > Anyway, just to make sure we're talking about the same thing, here's > my record of the patch that fixed the problem for Debian. Of course > after application, reentr.pl must be re-run, which modifies a file or > two... in this case only reentr.inc, it seems > --- reentr.pl.~1~ Wed Nov 12 15:12:34 2003 > +++ reentr.pl Wed Nov 12 15:12:34 2003 > @@ -695,7 +695,7 @@ > if ($func =~ /^get/) { > my $rv = $v ? ", $v" : ""; > if ($r eq 'I') { > - $call = qq[((PL_REENTRANT_RETINT = $call)$test ? $true : (((PL_REENTRANT_RETINT == ERANGE) || (errno == ERANGE)) ? Perl_reentrant_retry("$func"$rv) : 0))]; > + $call = qq[((PL_REENTRANT_RETINT = $call)$test ? $true : (((PL_REENTRANT_RETINT == ERANGE) || (errno == ERANGE)) ? ($seenm{$func}{$seenr{$func}})Perl_reentrant_retry("$func"$rv) : 0))]; > my $arg = join(", ", map { $seenm{$func}{substr($a,$_,1)}." ".$v[$_] } 0..$seenu{$func}-1); > my $ret = $seenr{$func} eq 'V' ? "" : "return "; > push @wrap, <<EOF; this is in maint 21943. However, I first tried applying it to blead. I realise that there are differences in the C (er /C++) code generated, but I was surprised that even in the logic there are large differences. eg %seenr isn't called %seenr in blead. Therefore, I assume that bleed still isn't C++ friendly. Nicholas ClarkThread Previous | Thread Next