blob: ac852e8ff27a46b249f1f44846258ea8d09a0ea8 [file] [log] [blame]
#include "embeddedRCall.h"
int callLength(SEXP obj);
int R_embeddedShutdown(Rboolean ask);
main(int argc, char *argv[])
{
SEXP objs[100];
int i;
Rf_initEmbeddedR(sizeof(argv)/sizeof(argv[0]), argv);
for(i = 0; i < 100; i++) {
objs[i] = allocVector(VECSXP, 1000);
R_PreserveObject(objs[i]);
callLength(objs[i]);
}
R_embeddedShutdown(FALSE);
}
int
callLength(SEXP obj)
{
SEXP e, val;
int errorOccurred;
int len = -1;
PROTECT(e = lang2(install("length"), obj));
val = R_tryEval(e, R_GlobalEnv, &errorOccurred);
len = INTEGER(val)[0];
UNPROTECT(1);
return(len);
}
int
R_embeddedShutdown(Rboolean ask)
{
R_dot_Last();
R_RunExitFinalizers();
CleanEd();
KillAllDevices();
num_old_gens_to_collect = NUM_OLD_GENERATIONS;
R_gc();
return(1);
}