The R Project SVN R

Rev

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

Rev 63692 Rev 66326
Line 205... Line 205...
205
#endif /* R_MEMORY_PROFILING */
205
#endif /* R_MEMORY_PROFILING */
206
 
206
 
207
SEXP attribute_hidden do_retracemem(SEXP call, SEXP op, SEXP args, SEXP rho)
207
SEXP attribute_hidden do_retracemem(SEXP call, SEXP op, SEXP args, SEXP rho)
208
{
208
{
209
#ifdef R_MEMORY_PROFILING
209
#ifdef R_MEMORY_PROFILING
210
    SEXP object, previous, ans, ap, argList;
210
    SEXP object, previous, ans, argList;
211
    char buffer[21];
211
    char buffer[21];
-
 
212
    static SEXP do_retracemem_formals = NULL;
212
 
213
 
213
    PROTECT(ap = list2(R_NilValue, R_NilValue));
214
    if (do_retracemem_formals == NULL)
214
    SET_TAG(ap,  install("x"));
215
        do_retracemem_formals = allocFormalsList2(install("x"),
215
    SET_TAG(CDR(ap), install("previous"));
216
						  install("previous"));
-
 
217
 
216
    PROTECT(argList =  matchArgs(ap, args, call));
218
    PROTECT(argList =  matchArgs(do_retracemem_formals, args, call));
217
    if(CAR(argList) == R_MissingArg) SETCAR(argList, R_NilValue);
219
    if(CAR(argList) == R_MissingArg) SETCAR(argList, R_NilValue);
218
    if(CADR(argList) == R_MissingArg) SETCAR(CDR(argList), R_NilValue);
220
    if(CADR(argList) == R_MissingArg) SETCAR(CDR(argList), R_NilValue);
219
 
221
 
220
    object = CAR(ap);
222
    object = CAR(ap);
221
    if (TYPEOF(object) == CLOSXP ||
223
    if (TYPEOF(object) == CLOSXP ||
Line 243... Line 245...
243
	    Rprintf("tracemem[%s -> %p]: ",
245
	    Rprintf("tracemem[%s -> %p]: ",
244
		    translateChar(STRING_ELT(previous, 0)), (void *) object);
246
		    translateChar(STRING_ELT(previous, 0)), (void *) object);
245
	    memtrace_stack_dump();
247
	    memtrace_stack_dump();
246
	}
248
	}
247
    }
249
    }
248
    UNPROTECT(2);
250
    UNPROTECT(1);
249
    return ans;
251
    return ans;
250
#else
252
#else
251
    R_Visible = 0; /* for consistency with other case */
253
    R_Visible = 0; /* for consistency with other case */
252
    return R_NilValue;
254
    return R_NilValue;
253
#endif
255
#endif