File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -84,13 +84,9 @@ impl<T: Source + Hash + PartialEq + Eq + 'static> Source for CachedSource<T> {
8484 }
8585
8686 fn buffer ( & self ) -> Cow < [ u8 ] > {
87- let cached = self . cached_buffer . get_or_init ( || {
88- let source = self . cached_source . get ( ) ;
89- match source {
90- Some ( source) => source. as_bytes ( ) . to_vec ( ) ,
91- None => self . inner . buffer ( ) . to_vec ( ) ,
92- }
93- } ) ;
87+ let cached = self
88+ . cached_buffer
89+ . get_or_init ( || self . inner . buffer ( ) . to_vec ( ) ) ;
9490 Cow :: Borrowed ( cached)
9591 }
9692
@@ -353,4 +349,13 @@ mod tests {
353349 assert_eq ! ( on_name_count, cached_on_name_count) ;
354350 assert_eq ! ( generated_info, cached_generated_info) ;
355351 }
352+
353+ #[ test]
354+ fn should_have_correct_buffer_if_cache_buffer_from_cache_source ( ) {
355+ let buf = vec ! [ 128u8 ] ;
356+ let source = CachedSource :: new ( RawSource :: from ( buf. clone ( ) ) ) ;
357+
358+ source. source ( ) ;
359+ assert_eq ! ( source. buffer( ) , buf. as_slice( ) ) ;
360+ }
356361}
You can’t perform that action at this time.
0 commit comments