File tree Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ extern "C" CDECL void
102
102
vec_reserve_shared (type_desc* ty, rust_vec** vp,
103
103
size_t n_elts) {
104
104
rust_task *task = rust_task_thread::get_task ();
105
- reserve_vec (task, vp, n_elts * ty->size );
105
+ reserve_vec_exact (task, vp, n_elts * ty->size );
106
106
}
107
107
108
108
/* *
Original file line number Diff line number Diff line change @@ -178,15 +178,17 @@ inline size_t vec_size(size_t elems) {
178
178
return sizeof (rust_vec) + sizeof (T) * elems;
179
179
}
180
180
181
- inline void reserve_vec (rust_task* task, rust_vec** vpp, size_t size) {
181
+ inline void reserve_vec_exact (rust_task* task, rust_vec** vpp, size_t size) {
182
182
if (size > (*vpp)->alloc ) {
183
- size_t new_alloc = next_power_of_two (size);
184
- *vpp = (rust_vec*)task->kernel ->realloc (*vpp, new_alloc +
185
- sizeof (rust_vec));
186
- (*vpp)->alloc = new_alloc;
183
+ *vpp = (rust_vec*)task->kernel ->realloc (*vpp, size + sizeof (rust_vec));
184
+ (*vpp)->alloc = size;
187
185
}
188
186
}
189
187
188
+ inline void reserve_vec (rust_task* task, rust_vec** vpp, size_t size) {
189
+ reserve_vec_exact (task, vpp, next_power_of_two (size));
190
+ }
191
+
190
192
typedef rust_vec rust_str;
191
193
192
194
inline rust_str *
You can’t perform that action at this time.
0 commit comments