[Rd] How allocate STRSXP outside of gc
Vadim Ogranovich
vograno at evafunds.com
Tue Apr 12 21:31:03 CEST 2005
Hi,
I am trying to figure a way to allocate a string SEXP so that gc() won't
ever collect it.
Here is a little bit of a background. Suppose I want to write a
.Call-callable function that upon each call returns the same value, say
mkChar("foo"):
SEXP getFoo() {
return mkChar("foo");
}
The above implementation doesn't take advantage of the fact that
mkChar("foo") could be pre-computed only once, and then the function
would return the pre-computed value. So the question is how to create
this precomputed value.
The closest thing I could find in the sources is R_NaString, but I was
not able to trace down how it comes about.
Thanks,
Vadim
P.S. I was able to solve a similar problem with symbols. If I need a
symbol "foo", I do
static SEXP FooSymbol = install("foo");
and then use FooSymbol instead of install("foo")
[[alternative HTML version deleted]]
More information about the R-devel
mailing list