From dmbates at gmail.com  Tue Jul 19 23:13:51 2005
From: dmbates at gmail.com (Douglas Bates)
Date: Tue, 19 Jul 2005 16:13:51 -0500
Subject: [Rd] R_AllocatePtr
In-Reply-To: <Pine.OSF.4.58.0507191522090.84377@odin.mdacc.tmc.edu>
References: <Pine.OSF.4.58.0507191522090.84377@odin.mdacc.tmc.edu>
Message-ID: <40e66e0b050719141358cce0be@mail.gmail.com>

On 7/19/05, Paul Roebuck <roebuck at odin.mdacc.tmc.edu> wrote:
> Had been looking into Luke Tierney's R_AllocatePtr() and
> was left with a question about exactly when does R reclaim
> heap memory. Implication of 'simpleref.nw' is that one can
> allocate C data on the R heap, and as long as pointer object
> is alive, the data and pointer will remain valid. But it
> calls allocString() which is implemented using R_alloc().
> 
> 'Writing R Extensions" says R will reclaim memory allocated
> using R_alloc() at the end of the .Call().
> 
> Was the intent that its invocation be restricted to within
> a .Call()? Doesn't sound as though it could be used to return
> an SEXP from a .Call() with its data intact.

Sounds like you may want an R external pointer object, which is also
documented in simpleref.nw



[Rd] R_AllocatePtr
Douglas Bates