@@ -41,12 +41,14 @@ class FieldProxyPolicy {
4141 const std::string& field_name ;
4242
4343 SEXP get () const {
44- Shield<SEXP> call ( Rf_lang3 ( R_DollarSymbol, parent, Rf_mkString (field_name.c_str ()) ) ) ;
44+ Shield<SEXP> str (Rf_mkString (field_name.c_str ()));
45+ Shield<SEXP> call (Rf_lang3 (R_DollarSymbol, parent, str));
4546 return Rcpp_fast_eval ( call, R_GlobalEnv ) ;
4647 }
4748 void set (SEXP x ) {
4849 SEXP dollarGetsSym = Rf_install ( " $<-" );
49- Shield<SEXP> call ( Rf_lang4 ( dollarGetsSym, parent, Rf_mkString (field_name.c_str ()) , x ) ) ;
50+ Shield<SEXP> str (Rf_mkString (field_name.c_str ()));
51+ Shield<SEXP> call (Rf_lang4 (dollarGetsSym, parent, str, x));
5052 parent.set__ ( Rcpp_fast_eval ( call, R_GlobalEnv ) );
5153 }
5254 } ;
@@ -66,7 +68,8 @@ class FieldProxyPolicy {
6668 const std::string& field_name ;
6769
6870 SEXP get () const {
69- Shield<SEXP> call ( Rf_lang3 ( R_DollarSymbol, parent, Rf_mkString (field_name.c_str ()) ) ) ;
71+ Shield<SEXP> str (Rf_mkString (field_name.c_str ()));
72+ Shield<SEXP> call (Rf_lang3 (R_DollarSymbol, parent, str));
7073 return Rcpp_fast_eval ( call, R_GlobalEnv ) ;
7174 }
7275 } ;
0 commit comments