diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-10-28 09:31:58 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-28 09:31:58 -0400 |
commit | f61af864df4d7a2513f738ddf2d5fddf79c878af (patch) | |
tree | 9b4899fa5ce69fbc73031fd0e2c566735069fb9f /cli/standalone | |
parent | 5389972ba5037b1ed48da11506f6798deec2b48e (diff) |
fix(compile): regression handling redirects (#26586)
Closes https://github.com/denoland/deno/issues/26583
Diffstat (limited to 'cli/standalone')
-rw-r--r-- | cli/standalone/serialization.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/cli/standalone/serialization.rs b/cli/standalone/serialization.rs index 12927845b..7b63c584e 100644 --- a/cli/standalone/serialization.rs +++ b/cli/standalone/serialization.rs @@ -173,6 +173,7 @@ pub struct RemoteModulesStoreBuilder { impl RemoteModulesStoreBuilder { pub fn add(&mut self, specifier: &Url, media_type: MediaType, data: Vec<u8>) { + log::debug!("Adding '{}' ({})", specifier, media_type); let specifier = specifier.to_string(); self.specifiers.push((specifier, self.data_byte_len)); self.data_byte_len += 1 + 8 + data.len() as u64; // media type (1 byte), data length (8 bytes), data @@ -182,6 +183,7 @@ impl RemoteModulesStoreBuilder { pub fn add_redirects(&mut self, redirects: &BTreeMap<Url, Url>) { self.redirects.reserve(redirects.len()); for (from, to) in redirects { + log::debug!("Adding redirect '{}' -> '{}'", from, to); let from = from.to_string(); let to = to.to_string(); self.redirects_len += (4 + from.len() + 4 + to.len()) as u64; @@ -354,17 +356,17 @@ impl RemoteModulesStore { pub fn read<'a>( &'a self, - specifier: &'a Url, + original_specifier: &'a Url, ) -> Result<Option<DenoCompileModuleData<'a>>, AnyError> { let mut count = 0; - let mut current = specifier; + let mut specifier = original_specifier; loop { if count > 10 { - bail!("Too many redirects resolving '{}'", specifier); + bail!("Too many redirects resolving '{}'", original_specifier); } - match self.specifiers.get(current) { + match self.specifiers.get(specifier) { Some(RemoteModulesStoreSpecifierValue::Redirect(to)) => { - current = to; + specifier = to; count += 1; } Some(RemoteModulesStoreSpecifierValue::Data(offset)) => { |