aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/plugin/plugin_manager.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/plugin/plugin_manager.rs')
-rw-r--r--crates/shirabe/src/plugin/plugin_manager.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/crates/shirabe/src/plugin/plugin_manager.rs b/crates/shirabe/src/plugin/plugin_manager.rs
index e2528ff..611ddfa 100644
--- a/crates/shirabe/src/plugin/plugin_manager.rs
+++ b/crates/shirabe/src/plugin/plugin_manager.rs
@@ -129,30 +129,28 @@ impl PluginManager {
// TODO(phase-b): PHP returns a shared object reference; we clone the repository
// box here to side-step a borrow conflict between `&self.composer` and
// `&mut self`. The Rust port should eventually share via Rc<RefCell<_>>.
- let repo: Box<dyn RepositoryInterface> = self
+ let repo = self
.composer_full()
.borrow()
.get_repository_manager()
.borrow()
- .get_local_repository()
- .clone_box();
+ .get_local_repository();
// The root package borrow is also tied to `self.composer`; clone the package handle
// (shared Rc) for the same reason as above.
let root_package = self.composer_full().borrow().get_package().clone();
- self.load_repository(&*repo, false, Some(root_package))?;
+ self.load_repository(&*repo.borrow(), false, Some(root_package))?;
}
if self.global_composer.is_some() && !self.are_plugins_disabled("global") {
- let repo: Box<dyn RepositoryInterface> = self
+ let repo = self
.global_composer
.as_ref()
.unwrap()
.borrow_partial()
.get_repository_manager()
.borrow()
- .get_local_repository()
- .clone_box();
- self.load_repository(&*repo, true, None)?;
+ .get_local_repository();
+ self.load_repository(&*repo.borrow(), true, None)?;
}
Ok(())
}
@@ -161,27 +159,25 @@ impl PluginManager {
pub fn deactivate_installed_plugins(&mut self) {
// TODO(plugin): deactivation is part of the plugin API
if !self.are_plugins_disabled("local") {
- let repo: Box<dyn RepositoryInterface> = self
+ let repo = self
.composer_full()
.borrow()
.get_repository_manager()
.borrow()
- .get_local_repository()
- .clone_box();
- self.deactivate_repository(&*repo, false);
+ .get_local_repository();
+ self.deactivate_repository(&*repo.borrow(), false);
}
if self.global_composer.is_some() && !self.are_plugins_disabled("global") {
- let repo: Box<dyn RepositoryInterface> = self
+ let repo = self
.global_composer
.as_ref()
.unwrap()
.borrow_partial()
.get_repository_manager()
.borrow()
- .get_local_repository()
- .clone_box();
- self.deactivate_repository(&*repo, true);
+ .get_local_repository();
+ self.deactivate_repository(&*repo.borrow(), true);
}
}