From f1a2f86782d64d605e3d3a1ee75abd04f259749a Mon Sep 17 00:00:00 2001 From: Cong-Cong Date: Thu, 13 Nov 2025 10:15:13 +0800 Subject: [PATCH] fix: CachedSource --- src/cached_source.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cached_source.rs b/src/cached_source.rs index 9f9bd6e..2562c63 100644 --- a/src/cached_source.rs +++ b/src/cached_source.rs @@ -13,7 +13,7 @@ use crate::{ }, object_pool::ObjectPool, source::SourceValue, - BoxSource, MapOptions, Source, SourceExt, SourceMap, + BoxSource, MapOptions, RawBufferSource, Source, SourceExt, SourceMap, }; #[derive(Default)] @@ -99,6 +99,16 @@ impl CachedSource { impl Source for CachedSource { fn source(&self) -> SourceValue<'_> { + // Check if it's a RawBufferSource containing a CachedSource + if let Some(buffer_source) = self + .inner + .as_ref() + .as_any() + .downcast_ref::() + { + return buffer_source.source(); + } + let chunks = self.get_or_init_chunks(); let mut string = String::with_capacity(self.size()); for chunk in chunks {