@@ -6,37 +6,19 @@ r_obj* rlang_ns_env;
66
77
88r_obj * r_ns_env (const char * pkg ) {
9- r_obj * ns = r_env_find ( R_NamespaceRegistry , r_sym (pkg ) );
10- if (ns == r_syms . unbound ) {
9+ r_obj * pkg_sym = r_sym (pkg );
10+ if (! r_env_has ( R_NamespaceRegistry , pkg_sym ) ) {
1111 r_abort ("Can't find namespace `%s`" , pkg );
1212 }
13- return ns ;
14- }
15-
16- static
17- r_obj * ns_env_get (r_obj * env , const char * name ) {
18- r_obj * obj = KEEP (r_env_find (env , r_sym (name )));
19-
20- // Can be a promise to a lazyLoadDBfetch() call
21- if (r_typeof (obj ) == R_TYPE_promise ) {
22- obj = r_eval (obj , r_envs .empty );
23- }
24- if (obj != r_syms .unbound ) {
25- FREE (1 );
26- return obj ;
27- }
2813
29- // Trigger object not found error
30- r_eval (r_sym (name ), env );
31- r_stop_unreachable ();
14+ return r_env_get (R_NamespaceRegistry , pkg_sym );
3215}
16+
3317r_obj * r_base_ns_get (const char * name ) {
34- return ns_env_get (r_envs .base , name );
18+ return r_env_get (r_envs .base , r_sym ( name ) );
3519}
36-
37-
3820r_obj * rlang_ns_get (const char * name ) {
39- return ns_env_get (rlang_ns_env , name );
21+ return r_env_get (rlang_ns_env , r_sym ( name ) );
4022}
4123
4224
0 commit comments