Skip to content

Commit

Permalink
Fix rchk errors (tidyverse#2868)
Browse files Browse the repository at this point in the history
* protect new string in rlang_namespace()

* protect arg of call to Rf_defineVar()
  • Loading branch information
krlmlr authored Jun 15, 2017
1 parent 0b40356 commit 3213786
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/rlang-export.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ DL_FUNC R_ExternalPtrAddrFn(SEXP s) {
#endif

SEXP rlang_namespace(const char* ns) {
SEXP call = PROTECT(Rf_lang2(Rf_install("getNamespace"), Rf_mkString(ns)));
SEXP call = PROTECT(Rf_lang2(Rf_install("getNamespace"), PROTECT(Rf_mkString(ns))));
SEXP ns_env = Rf_eval(call, R_BaseEnv);
UNPROTECT(1);
UNPROTECT(2);
return ns_env;
}

Expand All @@ -32,6 +32,6 @@ void rlang_register_pointer(const char* ns, const char* ptr_name, DL_FUNC fn) {

Rf_setAttrib(ptr_obj, R_ClassSymbol, Rf_mkString("fn_pointer"));

Rf_defineVar(Rf_install(ptr_name), ptr_obj, rlang_namespace(ns));
UNPROTECT(2);
Rf_defineVar(Rf_install(ptr_name), ptr_obj, PROTECT(rlang_namespace(ns)));
UNPROTECT(3);
}

0 comments on commit 3213786

Please sign in to comment.