Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upFeature/add more shields #1011
Feature/add more shields #1011
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1011 +/- ##
=======================================
Coverage 82.46% 82.46%
=======================================
Files 63 63
Lines 3166 3166
=======================================
Hits 2611 2611
Misses 555 555
Continue to review full report at Codecov.
|
| Rf_lang4(removeSym, Rf_mkString(name.c_str()), Storage::get__(), Rf_ScalarLogical( FALSE )) | ||
| ) ); | ||
| Shield<SEXP> str(Rf_mkString(name.c_str())); | ||
| Shield<SEXP> call(Rf_lang2(internalSym, Rf_lang4(removeSym, str, Storage::get__(), Rf_ScalarLogical(FALSE)))); |
kevinushey
Nov 4, 2019
•
Contributor
It may also be worth pulling out Rf_lang4() from this call and protecting that as well, since IIUC that will be an unprotected R object being passed into Rf_lang2(), and so in theory could be cleaned up by the GC when the pairlist created in Rf_lang2() is allocated..
It may also be worth pulling out Rf_lang4() from this call and protecting that as well, since IIUC that will be an unprotected R object being passed into Rf_lang2(), and so in theory could be cleaned up by the GC when the pairlist created in Rf_lang2() is allocated..
kevinushey
Nov 4, 2019
Contributor
Hmm, I might be wrong. IIUC, each of the lang* helper functions protects the arguments passed in, before the final call is created:
So this pattern should in fact be safe.
Hmm, I might be wrong. IIUC, each of the lang* helper functions protects the arguments passed in, before the final call is created:
So this pattern should in fact be safe.
|
LGTM! |
|
For completeness, the reverse dependsn check results are at RcppCore/rcpp-logs@74e007b |
As discussed in #1010, a few more unprotected temporaries were floating around. This attempts to cover a few more.
@kevinushey give it a look when you have a moment