MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / realloc

Method realloc

cranelift/entity/src/list.rs:249–267  ·  view source on GitHub ↗

Reallocate a block to a different size class. Copy `elems_to_copy` elements from the old to the new block.

(
        &mut self,
        block: usize,
        from_sclass: SizeClass,
        to_sclass: SizeClass,
        elems_to_copy: usize,
    )

Source from the content-addressed store, hash-verified

247 ///
248 /// Copy `elems_to_copy` elements from the old to the new block.
249 fn realloc(
250 &mut self,
251 block: usize,
252 from_sclass: SizeClass,
253 to_sclass: SizeClass,
254 elems_to_copy: usize,
255 ) -> usize {
256 debug_assert!(elems_to_copy <= sclass_size(from_sclass));
257 debug_assert!(elems_to_copy <= sclass_size(to_sclass));
258 let new_block = self.alloc(to_sclass);
259
260 if elems_to_copy > 0 {
261 let (old, new) = self.mut_slices(block, new_block);
262 (&mut new[0..elems_to_copy]).copy_from_slice(&old[0..elems_to_copy]);
263 }
264
265 self.free(block, from_sclass);
266 new_block
267 }
268}
269
270impl<T: EntityRef + ReservedValue> EntityList<T> {

Callers 4

pushMethod · 0.45
growMethod · 0.45
remove_lastMethod · 0.45
truncateMethod · 0.45

Calls 4

mut_slicesMethod · 0.80
allocMethod · 0.45
copy_from_sliceMethod · 0.45
freeMethod · 0.45

Tested by

no test coverage detected