[Rd] dotcode typo?

Duncan Murdoch murdoch at stats.uwo.ca
Thu Jun 2 19:03:08 CEST 2005


Huntsinger, Reid wrote:
> Sorry, I was looking at 2.0.1 when I meant to be looking at 2.1.0. The line
> numbers for the latter are 161-179 and line 164 is the one with what I think
> is a typo.
> 
> Reid Huntsinger
> 
> -----Original Message-----
> From: r-devel-bounces at stat.math.ethz.ch
> [mailto:r-devel-bounces at stat.math.ethz.ch] On Behalf Of Huntsinger, Reid
> Sent: Thursday, June 02, 2005 12:33 PM
> To: r-devel at stat.math.ethz.ch
> Subject: [Rd] dotcode typo?
> 
> 
> I ran across the following in the R-2.0.1 source, src/main/dotcode.c, in the
> function resolveNativeRoutine(), lines 146-163. Line 152 looks like a typo:
> here are lines 149-155
> 
>  if(!*fun) {
>         if(dll.type != FILENAME) {
>             *fun = R_FindNativeSymbolFromDLL(buf, &dll, symbol);
>             if(!fun) {
>                 errorcall(call, "cannot resolve native routine");
>             }
>         }
> 
> and I think the "if(!fun)" should be "if(!*fun)". 

I think you're right about the typo.

In the current code, !fun is known to be false, so the "cannot resolve 
native routine" error message is not even compiled in.  Putting in !*fun 
means that

.C("foo")

produces "cannot resolve native routine", rather than "function name not 
in load table" from the test a few lines down.

I'll commit this change after testing, but I hope Duncan TL has time to 
look at it and make sure the logic is okay.

Duncan Murdoch



More information about the R-devel mailing list