search for: r_calloc

Displaying 3 results from an estimated 3 matches for "r_calloc".

Did you mean: r_alloc
2012 Mar 18
2
malloc/calloc/strdup and R's aequivalents
Hello, when looking at "Writing R Extensions" with mem-allocation in mind, I wondered, which functions to use to substitute malloc(), calloc(), realloc() and strdup() and free(). It looked like Calloc() or R_Calloc() might be useful for some of my tasks, but when trying to use R_Calloc() for example, I got some error messages which I don't see where they are coming from. Maybe I just have forgotten to includ ethe right header file? So, how to use Calloc() / R_Calloc()? What is the prototype of this func...
2015 Nov 25
0
Custom C finalizers for .Call
...TR_PTR(what); if (!c) return; if (c->ctx) EVP_PKEY_CTX_free(c->ctx); if (c->node) xmlFreeNode(c->node); } [...] // allocate the context and tell R to manage its protection and finalization // (you could write a macro to make this one-liner) my_context_t* c = (my_context_t*) R_Calloc(1, my_context_t); SEXP res = PROTECT(R_MakeExternalPtr(c, R_NilValue, R_NilValue)); R_RegisterCFinalizer(res, context_fin); // do all work here ... you safely abort at any point without memory leaks c->node = xmlNewNode(...); c->ctx = EVP_PKEY_CTX_new(...); [...] The point of using a final...
2015 Nov 23
4
Custom C finalizers for .Call
WRE explains that R_alloc() can be used to allocate memory which automatically gets released by R at the end of a .C, .Call or .External, even in the case of an error or interruption. This is a really great feature to prevent memory leaks. I was wondering if there is a way to extend this mechanism to allow for automatically running UNPROTECT and custom finalizers at the end of a .Call as well.