aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/downloader
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-28 22:43:11 +0900
committernsfisis <nsfisis@gmail.com>2026-05-28 22:43:43 +0900
commiteea4efe87e455742ec17881ee93d8095925e8516 (patch)
tree6d242f4fdd0bf32f0494a6fbbd62bce9ed6e1dc7 /crates/shirabe/src/downloader
parentcc5d73c05a0abca2eebcc8a6afa0b1543ee49850 (diff)
downloadphp-shirabe-eea4efe87e455742ec17881ee93d8095925e8516.tar.gz
php-shirabe-eea4efe87e455742ec17881ee93d8095925e8516.tar.zst
php-shirabe-eea4efe87e455742ec17881ee93d8095925e8516.zip
refactor(repository): introduce Rc<RefCell<_>> handles for repositories
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/downloader')
-rw-r--r--crates/shirabe/src/downloader/perforce_downloader.rs7
-rw-r--r--crates/shirabe/src/downloader/svn_downloader.rs6
2 files changed, 6 insertions, 7 deletions
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<IndexMap<String, PhpMixed>> = if let Some(repo) = repository {
- if let Some(vcs_repo) = repo.as_any().downcast_ref::<VcsRepository>() {
+ let repo_ref = repo.borrow();
+ if let Some(vcs_repo) = repo_ref.as_any().downcast_ref::<VcsRepository>() {
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::<VcsRepository>() {
+ let repo_ref = repo.borrow();
+ if let Some(vcs_repo) = repo_ref.as_any().downcast_ref::<VcsRepository>() {
let repo_config = vcs_repo.get_repo_config();
if repo_config.contains_key("svn-cache-credentials") {
if let Some(val) = repo_config