The R Project SVN R

Rev

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

Rev 77358 Rev 77450
Line 562... Line 562...
562
	    errorcall(call,
562
	    errorcall(call,
563
		      _("Incorrect number of arguments (%d), expecting %d for '%s'"),
563
		      _("Incorrect number of arguments (%d), expecting %d for '%s'"),
564
		      nargs, symbol.symbol.external->numArgs, buf);
564
		      nargs, symbol.symbol.external->numArgs, buf);
565
    }
565
    }
566
 
566
 
-
 
567
#ifdef SWITCH_TO_REFCNT
-
 
568
    /* args is escaping into user C code and might get captured, so
-
 
569
       make sure it is reference counting. */
-
 
570
    for (SEXP a = args; a != R_NilValue; a = CDR(a))
-
 
571
	if (! TRACKREFS(a)) {
-
 
572
	    ENABLE_REFCNT(a);
-
 
573
	    INCREMENT_REFCNT(CAR(a));
-
 
574
	    INCREMENT_REFCNT(CDR(a));
-
 
575
#ifdef TESTING_WRITE_BARRIER
-
 
576
	    /* this should not see non-tracking arguments */
-
 
577
	    if (! TRACKREFS(CAR(a)))
-
 
578
		error("argument not tracking references");
-
 
579
#endif
-
 
580
	}
-
 
581
#endif
-
 
582
 
567
    if (PRIMVAL(op) == 1) {
583
    if (PRIMVAL(op) == 1) {
568
	R_ExternalRoutine2 fun = (R_ExternalRoutine2) ofun;
584
	R_ExternalRoutine2 fun = (R_ExternalRoutine2) ofun;
569
	retval = fun(call, op, args, env);
585
	retval = fun(call, op, args, env);
570
    } else {
586
    } else {
571
	R_ExternalRoutine fun = (R_ExternalRoutine) ofun;
587
	R_ExternalRoutine fun = (R_ExternalRoutine) ofun;