@@ -41,12 +41,14 @@ class FieldProxyPolicy {
41
41
const std::string& field_name ;
42
42
43
43
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));
45
46
return Rcpp_fast_eval ( call, R_GlobalEnv ) ;
46
47
}
47
48
void set (SEXP x ) {
48
49
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));
50
52
parent.set__ ( Rcpp_fast_eval ( call, R_GlobalEnv ) );
51
53
}
52
54
} ;
@@ -66,7 +68,8 @@ class FieldProxyPolicy {
66
68
const std::string& field_name ;
67
69
68
70
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));
70
73
return Rcpp_fast_eval ( call, R_GlobalEnv ) ;
71
74
}
72
75
} ;
0 commit comments