diff options
| author | Alan Wu <XrXr@users.noreply.github.com> | 2025-10-14 14:21:59 -0400 |
|---|---|---|
| committer | Alan Wu <XrXr@users.noreply.github.com> | 2025-10-14 15:01:38 -0400 |
| commit | 8baf170e936525bbda4838db5bbfb138cf724229 (patch) | |
| tree | 99b9f4b3510a76efdc273bdd9eecafdf13d11ec2 | |
| parent | d1442727dd8dc6ae62d0addac2aba3bd8602430f (diff) | |
ZJIT: `mem::take` instead of `drain` then `collect`
Gets rid of one transient vec copy/allocation.
| -rw-r--r-- | zjit/src/hir.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs index a032d9ec8a..e32c15702e 100644 --- a/zjit/src/hir.rs +++ b/zjit/src/hir.rs @@ -2398,7 +2398,7 @@ impl Function { if let Some(replacement) = (props.inline)(fun, tmp_block, recv, &args, state) { // Copy contents of tmp_block to block assert_ne!(block, tmp_block); - let insns = fun.blocks[tmp_block.0].insns.drain(..).collect::<Vec<_>>(); + let insns = std::mem::take(&mut fun.blocks[tmp_block.0].insns); fun.blocks[block.0].insns.extend(insns); fun.make_equal_to(send_insn_id, replacement); fun.remove_block(tmp_block); @@ -2453,7 +2453,7 @@ impl Function { if let Some(replacement) = (props.inline)(fun, tmp_block, recv, &args, state) { // Copy contents of tmp_block to block assert_ne!(block, tmp_block); - let insns = fun.blocks[tmp_block.0].insns.drain(..).collect::<Vec<_>>(); + let insns = std::mem::take(&mut fun.blocks[tmp_block.0].insns); fun.blocks[block.0].insns.extend(insns); fun.make_equal_to(send_insn_id, replacement); fun.remove_block(tmp_block); |
