The R Project SVN R

Rev

Rev 2807 | Rev 5187 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2807 Rev 5154
Line 364... Line 364...
364
    }
364
    }
365
    for (t = matchedarg; t != R_NilValue; t = CDR(t)) {
365
    for (t = matchedarg; t != R_NilValue; t = CDR(t)) {
366
	for (m = actuals; m != R_NilValue; m = CDR(m))
366
	for (m = actuals; m != R_NilValue; m = CDR(m))
367
	    if (CAR(m) == CAR(t))  {
367
	    if (CAR(m) == CAR(t))  {
368
		if (CAR(m) == R_MissingArg) {
368
		if (CAR(m) == R_MissingArg) {
-
 
369
		  
-
 
370
		  /*#ifdef USE_HASHTABLE */
-
 
371
		    tmp = findVarInFrame(cptr->cloenv, TAG(m));
-
 
372
 
-
 
373
		    /* Old */
369
		    tmp = findVarInFrame(FRAME(cptr->cloenv), TAG(m));
374
		    /* tmp = findVarInFrame(FRAME(cptr->cloenv), TAG(m)); */
-
 
375
		    
-
 
376
		    /*#endif  USE_HASHTABLE */
-
 
377
 
370
		    if (tmp == R_MissingArg)
378
		    if (tmp == R_MissingArg)
371
			break;
379
			break;
372
		}
380
		}
373
		CAR(t) = mkPROMISE(TAG(m), cptr->cloenv);
381
		CAR(t) = mkPROMISE(TAG(m), cptr->cloenv);
374
		break;
382
		break;
Line 381... Line 389...
381
      White Book
389
      White Book
382
    */
390
    */
383
 
391
 
384
    s = CADDR(args); /* this is ... and we need to see if it's bound */
392
    s = CADDR(args); /* this is ... and we need to see if it's bound */
385
    if (s == R_DotsSymbol) {
393
    if (s == R_DotsSymbol) {
386
	t = findVarInFrame(FRAME(env), s);
394
	t = findVarInFrame(env, s);
387
	if (t != R_NilValue && t != R_MissingArg) {
395
	if (t != R_NilValue && t != R_MissingArg) {
388
	    TYPEOF(t) = LISTSXP; /* a safe mutation */
396
	    TYPEOF(t) = LISTSXP; /* a safe mutation */
389
	    s = matchmethargs(matchedarg,t);
397
	    s = matchmethargs(matchedarg,t);
390
	    UNPROTECT(1);
398
	    UNPROTECT(1);
391
	    PROTECT(matchedarg = s);
399
	    PROTECT(matchedarg = s);