File tree Expand file tree Collapse file tree 1 file changed +4
-8
lines changed Expand file tree Collapse file tree 1 file changed +4
-8
lines changed Original file line number Diff line number Diff line change @@ -101,18 +101,14 @@ fn append_to_string<F>(buf: &mut String, f: F) -> Result<usize>
101101fn read_to_end < R : Read + ?Sized > ( r : & mut R , buf : & mut Vec < u8 > ) -> Result < usize > {
102102 let start_len = buf. len ( ) ;
103103 let mut len = start_len;
104- let min_cap_bump = 16 ;
104+ let mut new_write_size = 16 ;
105105 let ret;
106106 loop {
107107 if len == buf. len ( ) {
108- if buf. capacity ( ) == buf. len ( ) {
109- // reserve() rounds up our request such that every request
110- // (with maybe the exception of the first request) for the
111- // same amount of space doubles our capacity.
112- buf. reserve ( min_cap_bump) ;
108+ if new_write_size < DEFAULT_BUF_SIZE {
109+ new_write_size *= 2 ;
113110 }
114- let new_area = buf. capacity ( ) - buf. len ( ) ;
115- buf. extend ( iter:: repeat ( 0 ) . take ( new_area) ) ;
111+ buf. extend ( iter:: repeat ( 0 ) . take ( new_write_size) ) ;
116112 }
117113
118114 match r. read ( & mut buf[ len..] ) {
You can’t perform that action at this time.
0 commit comments