From murdoch at stats.uwo.ca  Thu Jun  2 19:03:08 2005
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Thu Jun  2 19:06:20 2005
Subject: [Rd] dotcode typo?
In-Reply-To: <D9A95B4B7B20354992E165EEADA31999056A946F@uswpmx00.merck.com>
References: <D9A95B4B7B20354992E165EEADA31999056A946F@uswpmx00.merck.com>
Message-ID: <429F3BCC.9040208@stats.uwo.ca>

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@stat.math.ethz.ch
> [mailto:r-devel-bounces@stat.math.ethz.ch] On Behalf Of Huntsinger, Reid
> Sent: Thursday, June 02, 2005 12:33 PM
> To: r-devel@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


[Rd] dotcode typo?
Duncan Murdoch