File tree Expand file tree Collapse file tree 1 file changed +4
-5
lines changed Expand file tree Collapse file tree 1 file changed +4
-5
lines changed Original file line number Diff line number Diff line change @@ -101,15 +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 mut cap_bump = 16 ;
104
+ let min_cap_bump = 16 ;
105
105
let ret;
106
106
loop {
107
107
if len == buf. len ( ) {
108
108
if buf. capacity ( ) == buf. len ( ) {
109
- if cap_bump < DEFAULT_BUF_SIZE {
110
- cap_bump *= 2 ;
111
- }
112
- buf. reserve ( cap_bump) ;
109
+ // reserve() rounds up our request to the nearest power of two, so after the first
110
+ // time the capacity is exceeded, we double our capacity at each call to reserve.
111
+ buf. reserve ( min_cap_bump) ;
113
112
}
114
113
let new_area = buf. capacity ( ) - buf. len ( ) ;
115
114
buf. extend ( iter:: repeat ( 0 ) . take ( new_area) ) ;
You can’t perform that action at this time.
0 commit comments