Hi, yes, after thinking a little bit more I changed my code to:
if(ret == NULL) return R_NilValue; else return Rcpp::wrap(ret); and now everything works fine. But I'm still wondering whether it would make sense for Rcpp::wrap to return an R_NilValue when called with NULL (instead of seg-faulting..). Regards, Christoph On 05/24/2011 01:46 PM, Dirk Eddelbuettel wrote:
On 24 May 2011 at 13:22, Christoph Bergmeir wrote: | Hello everybody, | | I just ran into the following problem: Using Rcpp::wrap with a NULL pointer crashes my R. I'm not so sure if this is a bug or if I'm using Rcpp::wrap in a way it shouldn't be used, so I wanted to discuss this here. | | Here is some example code: | | This works fine: | #----------------------------------- | library(inline) | | src<- ' | const char* ret = "test"; | return Rcpp::wrap(ret); | ' | | fun<- cxxfunction(signature(), src, plugin="Rcpp") | fun() | #----------------------------------- | | Whereas this crashes R: | #----------------------------------- | | src<- ' | const char* ret = NULL; | return Rcpp::wrap(ret); | ' | | fun<- cxxfunction(signature(), src, plugin="Rcpp") | fun() | #----------------------------------- I think this is mostly of the Q Doctor, doctor it hurts when I do this! A Well then don't it variety. wrap() is tasked with making a valid SEXP out of what you hand it. Maybe you want to test for NULL before calling it. Dirk | | I'm using Rcpp 0.9.4 and R.2.13, which I think are the latest versions. | | Regards, | Christoph | | PD: Dirk, Romain, I just read through the slides you made for this workshop a month ago. Great work! Thanks a lot! Thanks! | | | -- | Christoph Bergmeir | e-mail: c.bergm...@decsai.ugr.es | Grupo SCI2S, DiCITS Lab (http://sci2s.ugr.es/DiCITS) | Dpto. de Ciencias de la Computacion e Inteligencia Artificial | E.T.S. Ingenierias de Informatica y Telecomunicacion | Universidad de Granada | 18071 - GRANADA (Spain) | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
-- Christoph Bergmeir e-mail: c.bergm...@decsai.ugr.es Grupo SCI2S, DiCITS Lab (http://sci2s.ugr.es/DiCITS) Dpto. de Ciencias de la Computacion e Inteligencia Artificial E.T.S. Ingenierias de Informatica y Telecomunicacion Universidad de Granada 18071 - GRANADA (Spain) _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel