The R Project SVN R

Rev

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

Rev 38417 Rev 38426
Line 107... Line 107...
107
    SEXP object;
107
    SEXP object;
108
    char buffer[20];
108
    char buffer[20];
109
 
109
 
110
    checkArity(op, args);
110
    checkArity(op, args);
111
 
111
 
112
    object=CAR(args);
112
    object = CAR(args);
113
    if (TYPEOF(object) == CLOSXP || 
113
    if (TYPEOF(object) == CLOSXP || 
114
	TYPEOF(object) == BUILTINSXP ||
114
	TYPEOF(object) == BUILTINSXP ||
115
	TYPEOF(object) == SPECIALSXP)
115
	TYPEOF(object) == SPECIALSXP)
116
	    errorcall(call, "argument must not be a function");
116
	    errorcall(call, "argument must not be a function");
117
 
117
 
118
    if(object == R_NilValue)
118
    if(object == R_NilValue)
119
	    errorcall(call, "cannot trace NULL");
119
	    errorcall(call, "cannot trace NULL");
120
 
120
 
121
    if(TYPEOF(object) == ENVSXP || TYPEOF(object) == PROMSXP)
121
    if(TYPEOF(object) == ENVSXP || TYPEOF(object) == PROMSXP)
-
 
122
	    errorcall(call,
122
	    errorcall(call,"memtrace is not useful for promise and environment objects");
123
  "memtrace is not useful for promise and environment objects");
123
    if(TYPEOF(object) == EXTPTRSXP || TYPEOF(object) == WEAKREFSXP)
124
    if(TYPEOF(object) == EXTPTRSXP || TYPEOF(object) == WEAKREFSXP)
-
 
125
	    errorcall(call,
124
	    errorcall(call,"memtrace is not useful for weak reference or pointer objects");
126
  "memtrace is not useful for weak reference or external pointer objects");
125
 
127
 
126
    SET_TRACE(object, 1);
128
    SET_TRACE(object, 1);
127
    sprintf(buffer, "<%p>", object);
129
    sprintf(buffer, "<%p>", object);
128
    return mkString(buffer);
130
    return mkString(buffer);
129
#else
131
#else