[Rd] mb_m buffer not cleared if parseEval fails

Pratibha Rana prana at Vertica.com
Thu Mar 1 17:05:40 CET 2012


Hi,

I am using RInside for one of the applications that I'm using. The error 
that occured is as follows.

When I use  R.parseEval("xyz") if the parse fails then the mb_m is not 
cleared and hence all subsequent
calls to R.parseEval fail.

example:

when R.parseEval("stringConcatfactoryrandom") is executed the R instance 
looks like this
  (gdb) p R
$7 = (RInside &) @0x7fff13d42d10: {mb_m = {buffer = 
"stringConcatfactoryrandom"}, global_env = <incomplete type>, verbose_m 
= false, static instance_ = 0x7fff13d42d10}

since there's no function called stringConcatfactoryrandom in my R code, 
the above call fails. The I use the same R instance to call

R.parseEval("exists")    and I  get this

(gdb) p R
$8 = (RInside &) @0x7fff13d42d10: {mb_m = {buffer = 
"stringConcatfactoryrandomexists"}, global_env = <incomplete type>, 
verbose_m = false, static instance_ = 0x7fff13d42d10}

I think the buffer should be cleared after each call to parseEval


Thanks
Pratibha



More information about the R-devel mailing list