File tree 1 file changed +4
-8
lines changed
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>
101
101
fn read_to_end < R : Read + ?Sized > ( r : & mut R , buf : & mut Vec < u8 > ) -> Result < usize > {
102
102
let start_len = buf. len ( ) ;
103
103
let mut len = start_len;
104
- let min_cap_bump = 16 ;
104
+ let mut new_write_size = 16 ;
105
105
let ret;
106
106
loop {
107
107
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 ;
113
110
}
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) ) ;
116
112
}
117
113
118
114
match r. read ( & mut buf[ len..] ) {
You can’t perform that action at this time.
0 commit comments