The R Project SVN R

Rev

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

Rev 50715 Rev 50745
Line 95... Line 95...
95
static SEXP applyMethod(SEXP call, SEXP op, SEXP args, SEXP rho, SEXP newrho)
95
static SEXP applyMethod(SEXP call, SEXP op, SEXP args, SEXP rho, SEXP newrho)
96
{
96
{
97
    SEXP ans;
97
    SEXP ans;
98
    if (TYPEOF(op) == SPECIALSXP) {
98
    if (TYPEOF(op) == SPECIALSXP) {
99
	int save = R_PPStackTop, flag = PRIMPRINT(op);
99
	int save = R_PPStackTop, flag = PRIMPRINT(op);
100
	void *vmax = vmaxget();
100
	const void *vmax = vmaxget();
101
	R_Visible = flag != 1;
101
	R_Visible = flag != 1;
102
	ans = PRIMFUN(op) (call, op, args, rho);
102
	ans = PRIMFUN(op) (call, op, args, rho);
103
	if (flag < 2) R_Visible = flag != 1;
103
	if (flag < 2) R_Visible = flag != 1;
104
	check_stack_balance(op, save);
104
	check_stack_balance(op, save);
105
	vmaxset(vmax);
105
	vmaxset(vmax);
Line 109... Line 109...
109
       used as methods, and this would have to be a primitive to be
109
       used as methods, and this would have to be a primitive to be
110
       found).
110
       found).
111
     */
111
     */
112
    else if (TYPEOF(op) == BUILTINSXP) {
112
    else if (TYPEOF(op) == BUILTINSXP) {
113
	int save = R_PPStackTop, flag = PRIMPRINT(op);
113
	int save = R_PPStackTop, flag = PRIMPRINT(op);
114
	void *vmax = vmaxget();
114
	const void *vmax = vmaxget();
115
	PROTECT(args = evalList(args, rho, call, 0));
115
	PROTECT(args = evalList(args, rho, call, 0));
116
	R_Visible = flag != 1;
116
	R_Visible = flag != 1;
117
	ans = PRIMFUN(op) (call, op, args, rho);
117
	ans = PRIMFUN(op) (call, op, args, rho);
118
	if (flag < 2) R_Visible = flag != 1;
118
	if (flag < 2) R_Visible = flag != 1;
119
	UNPROTECT(1);
119
	UNPROTECT(1);