@@ -40,8 +40,6 @@ impl WasmBump {
40
40
deallocate_function,
41
41
chunks : Vec :: new ( ) ,
42
42
} ;
43
- let initial_chunk = this. allocate_chunk ( None , None ) ?;
44
- this. chunks . push ( initial_chunk) ;
45
43
Ok ( this)
46
44
}
47
45
@@ -94,25 +92,20 @@ impl WasmBump {
94
92
. context ( "chunk overflows usize" ) ?,
95
93
None => INITIAL_CHUNK_SIZE ,
96
94
} ;
97
-
98
95
let mut align = CHUNK_ALIGN ;
99
96
if let Some ( min_layout) = min_layout {
100
97
align = align. max ( min_layout. align ( ) ) ;
101
98
let requested_size =
102
99
round_up_to ( min_layout. size ( ) , align) . context ( "allocation too large" ) ?;
103
100
new_size = new_size. max ( requested_size) ;
104
101
}
105
-
106
102
assert_eq ! ( align % CHUNK_ALIGN , 0 ) ;
107
103
assert_eq ! ( new_size % CHUNK_ALIGN , 0 ) ;
108
104
let layout = Layout :: from_size_align ( new_size, align) . context ( "size or align is 0" ) ?;
109
-
110
105
assert ! ( new_size >= previous_size. unwrap_or( 0 ) * 2 ) ;
111
-
112
106
let start = self
113
107
. allocate_function
114
108
. call ( layout. size ( ) as u32 , layout. align ( ) as u32 ) ?;
115
-
116
109
Ok ( Chunk {
117
110
start,
118
111
layout,
@@ -124,21 +117,17 @@ impl WasmBump {
124
117
/// all allocated memory.
125
118
pub fn reset ( & mut self ) -> anyhow:: Result < ( ) > {
126
119
// Free all but the last chunk.
127
- for chunk in self . chunks . drain ( ..self . chunks . len ( ) - 1 ) {
120
+ for chunk in self . chunks . drain ( ..self . chunks . len ( ) ) {
128
121
self . deallocate_function . call (
129
122
chunk. start ,
130
123
chunk. layout . size ( ) as u32 ,
131
124
chunk. layout . align ( ) as u32 ,
132
125
) ?;
133
126
}
134
127
135
- assert_eq ! ( self . chunks. len( ) , 1 ) ;
136
-
137
- // Reset the last chunk's data pointer.
138
- let last_chunk = self . chunks . last_mut ( ) . unwrap ( ) ;
139
- last_chunk
140
- . ptr
141
- . set ( last_chunk. start + last_chunk. layout . size ( ) as u32 ) ;
128
+ // Allocate initial chunk
129
+ let chunk = self . allocate_chunk ( None , None ) ?;
130
+ self . chunks . push ( chunk) ;
142
131
143
132
Ok ( ( ) )
144
133
}
0 commit comments