From eea4efe87e455742ec17881ee93d8095925e8516 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Thu, 28 May 2026 22:43:11 +0900 Subject: refactor(repository): introduce Rc> handles for repositories Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/shirabe/src/downloader/perforce_downloader.rs | 7 +++---- crates/shirabe/src/downloader/svn_downloader.rs | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'crates/shirabe/src/downloader') diff --git a/crates/shirabe/src/downloader/perforce_downloader.rs b/crates/shirabe/src/downloader/perforce_downloader.rs index 4a54511..fcea57c 100644 --- a/crates/shirabe/src/downloader/perforce_downloader.rs +++ b/crates/shirabe/src/downloader/perforce_downloader.rs @@ -90,10 +90,10 @@ impl PerforceDownloader { return; } - let package_rc = package.as_rc().borrow(); - let repository = package_rc.as_package_interface().get_repository(); + let repository = package.get_repository(); let repo_config: Option> = if let Some(repo) = repository { - if let Some(vcs_repo) = repo.as_any().downcast_ref::() { + let repo_ref = repo.borrow(); + if let Some(vcs_repo) = repo_ref.as_any().downcast_ref::() { Some(self.get_repo_config(vcs_repo)) } else { None @@ -101,7 +101,6 @@ impl PerforceDownloader { } else { None }; - drop(package_rc); self.perforce = Some(Perforce::create( repo_config.unwrap_or_default(), url, diff --git a/crates/shirabe/src/downloader/svn_downloader.rs b/crates/shirabe/src/downloader/svn_downloader.rs index 9f5d2ed..98456a4 100644 --- a/crates/shirabe/src/downloader/svn_downloader.rs +++ b/crates/shirabe/src/downloader/svn_downloader.rs @@ -70,10 +70,10 @@ impl SvnDownloader { let r#ref = package.get_source_reference(); { - let package_ref = package.as_rc().borrow(); - let repo = package_ref.as_package_interface().get_repository(); + let repo = package.get_repository(); if let Some(repo) = repo { - if let Some(vcs_repo) = repo.as_any().downcast_ref::() { + let repo_ref = repo.borrow(); + if let Some(vcs_repo) = repo_ref.as_any().downcast_ref::() { let repo_config = vcs_repo.get_repo_config(); if repo_config.contains_key("svn-cache-credentials") { if let Some(val) = repo_config -- cgit v1.3.1