develooper Front page | perl.perl5.porters | Postings from November 2003

Re: [perl #24468] 5.8.2: Interface cannot be compiled with C++

Thread Previous | Thread Next
From:
Chip Salzenberg
Date:
November 12, 2003 16:06
Subject:
Re: [perl #24468] 5.8.2: Interface cannot be compiled with C++
Message ID:
20031113000627.GA30502@perlsupport.com
According to Jan Dubois:
> I guess that returning 0 as a pointer of the correct type is the problem.

No, returning 0 is fine.  The problem is returning Perl_reentrant_retry(),
which is of type void* (as the error messages said [*cough*]).  Is this
usage new?  If not, why did 5.8.2 fail when 5.8.1 (or perhaps 5.8.0)
worked?  (I ask only out of curiosity.)

In any case, we might well need something like this instead:

Index: main/Apps/Gecko/src/Core/reentr.pl
--- main/Apps/Gecko/src/Core/reentr.pl.~1~	Wed Nov 12 15:12:34 2003
+++ main/Apps/Gecko/src/Core/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;
End of Patch.

-- 
Chip Salzenberg               - a.k.a. -               <chip@pobox.com>
"I wanted to play hopscotch with the impenetrable mystery of existence,
    but he stepped in a wormhole and had to go in early."  // MST3K

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About