[Rcpp-devel] Rcpp::wrap seg fault (when called with a NULL pointer)
Romain Francois
romain at r-enthusiasts.com
Tue May 24 14:53:23 CEST 2011
Le 24/05/11 13:46, Dirk Eddelbuettel a écrit :
>
> 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
And you start sounding like Steve Jobs :-)
Perhaps we can bring the test inside Rcpp in this wrap :
inline SEXP wrap(const char* const v ){
return Rf_mkString(v) ;
}
Not sure what the result ought to be though: NULL, NA, "" ?
Romain
> | 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.bergmeir at 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 at lists.r-forge.r-project.org
> | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
http://romain-francois.com
|- http://bit.ly/hdKhCy : Rcpp article in JSS
|- http://bit.ly/elZJRJ : Montpellier Comedie Club - Avril 2011
`- http://bit.ly/fhqbRC : Rcpp workshop in Chicago on April 28th
More information about the Rcpp-devel
mailing list