Skip to content

Commit 37f4724

Browse files
committed
Extract resource_loaded_namespaces()
1 parent 9d1457b commit 37f4724

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

crates/ark/src/interface.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ use crate::signals::initialize_signal_handlers;
118118
use crate::signals::interrupts_pending;
119119
use crate::signals::set_interrupts_pending;
120120
use crate::srcref::ns_populate_srcref;
121-
use crate::srcref::resource_namespaces;
121+
use crate::srcref::resource_loaded_namespaces;
122122
use crate::startup;
123123
use crate::strings::lines;
124124
use crate::sys::console::console_to_utf8;
@@ -452,7 +452,7 @@ impl RMain {
452452
// Namespaces of future loaded packages will be populated on load.
453453
// (after r_task initialization)
454454
if do_resource_namespaces() {
455-
if let Err(err) = resource_namespaces(None) {
455+
if let Err(err) = resource_loaded_namespaces() {
456456
log::error!("Can't populate srcrefs for loaded packages: {err:?}");
457457
}
458458
}

crates/ark/src/srcref.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,7 @@ use crate::variables::variable::is_binding_fancy;
1616
use crate::variables::variable::plain_binding_force_with_rollback;
1717

1818
#[tracing::instrument(level = "trace", skip_all)]
19-
pub(crate) fn resource_namespaces(pkgs: Option<Vec<String>>) -> anyhow::Result<()> {
20-
let pkgs = match pkgs {
21-
Some(inner) => inner,
22-
None => {
23-
let loaded = RFunction::new("base", "loadedNamespaces").call()?;
24-
let loaded: Vec<String> = loaded.try_into()?;
25-
loaded
26-
},
27-
};
28-
19+
pub(crate) fn resource_namespaces(pkgs: Vec<String>) -> anyhow::Result<()> {
2920
// Generate only one task and loop inside it to preserve the order of `pkgs`
3021
r_task::spawn_idle(|| async move {
3122
for pkg in pkgs.into_iter() {
@@ -38,10 +29,16 @@ pub(crate) fn resource_namespaces(pkgs: Option<Vec<String>>) -> anyhow::Result<(
3829
Ok(())
3930
}
4031

32+
pub(crate) fn resource_loaded_namespaces() -> anyhow::Result<()> {
33+
let loaded = RFunction::new("base", "loadedNamespaces").call()?;
34+
let loaded: Vec<String> = loaded.try_into()?;
35+
resource_namespaces(loaded)
36+
}
37+
4138
#[harp::register]
4239
unsafe extern "C" fn ps_resource_namespaces(pkgs: SEXP) -> anyhow::Result<SEXP> {
4340
let pkgs: Vec<String> = RObject::view(pkgs).try_into()?;
44-
resource_namespaces(Some(pkgs))?;
41+
resource_namespaces(pkgs)?;
4542
Ok(harp::r_null())
4643
}
4744

0 commit comments

Comments
 (0)