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

Reply via email to