The R Project SVN R

Rev

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

Rev 42307 Rev 45446
Line 82... Line 82...
82
 
82
 
83
SEXP R_traceOnOff(SEXP onOff)
83
SEXP R_traceOnOff(SEXP onOff)
84
{
84
{
85
    Rboolean prev = GET_TRACE_STATE;
85
    Rboolean prev = GET_TRACE_STATE;
86
    if(length(onOff) > 0) {
86
    if(length(onOff) > 0) {
87
        Rboolean _new = asLogical(onOff);
87
	Rboolean _new = asLogical(onOff);
88
        if(_new == TRUE || _new == FALSE)
88
	if(_new == TRUE || _new == FALSE)
89
            SET_TRACE_STATE(_new);
89
	    SET_TRACE_STATE(_new);
90
        else
90
	else
91
            error("Value for tracingState must be TRUE or FALSE");
91
	    error("Value for tracingState must be TRUE or FALSE");
92
    }
92
    }
93
    return ScalarLogical(prev);
93
    return ScalarLogical(prev);
94
}
94
}
95
 
95
 
96
Rboolean attribute_hidden
96
Rboolean attribute_hidden
Line 214... Line 214...
214
    } else ans = R_NilValue;
214
    } else ans = R_NilValue;
215
 
215
 
216
    if (origin != R_NilValue){
216
    if (origin != R_NilValue){
217
	SET_TRACE(object, 1);
217
	SET_TRACE(object, 1);
218
	if (R_current_trace_state()) {
218
	if (R_current_trace_state()) {
219
	    Rprintf("tracemem[%s -> %p]: ", 
219
	    Rprintf("tracemem[%s -> %p]: ",
220
		    translateChar(STRING_ELT(origin, 0)), (void *) object);
220
		    translateChar(STRING_ELT(origin, 0)), (void *) object);
221
	    memtrace_stack_dump();
221
	    memtrace_stack_dump();
222
	}
222
	}
223
    }
223
    }
224
    return ans;
224
    return ans;