Skip to content

Commit 03bfd70

Browse files
perf: Fix clippy::drain_collect
1 parent 81df1ff commit 03bfd70

2 files changed

Lines changed: 9 additions & 15 deletions

File tree

crates/vm/src/stdlib/_codecs.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -791,19 +791,18 @@ mod _codecs_windows {
791791

792792
// Convert code point to UTF-16
793793
let mut wchars = [0u16; 2];
794-
let wchar_len;
795794
let is_surrogate = (0xD800..=0xDFFF).contains(&ch);
796795

797-
if is_surrogate {
798-
wchar_len = 0; // Can't encode surrogates normally
796+
let wchar_len = if is_surrogate {
797+
0 // Can't encode surrogates normally
799798
} else if ch < 0x10000 {
800799
wchars[0] = ch as u16;
801-
wchar_len = 1;
800+
1
802801
} else {
803802
wchars[0] = ((ch - 0x10000) >> 10) as u16 + 0xD800;
804803
wchars[1] = ((ch - 0x10000) & 0x3FF) as u16 + 0xDC00;
805-
wchar_len = 2;
806-
}
804+
2
805+
};
807806

808807
if !is_surrogate {
809808
let mut buf = [0u8; 8];

crates/vm/src/vm/mod.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ use core::ptr::NonNull;
5050
use core::sync::atomic::AtomicI64;
5151
use core::{
5252
cell::{Cell, OnceCell, RefCell},
53+
mem,
5354
sync::atomic::{AtomicBool, AtomicU64, Ordering},
5455
};
5556
use crossbeam_utils::atomic::AtomicCell;
@@ -1467,9 +1468,7 @@ impl VirtualMachine {
14671468

14681469
let initial_ptr = self.take_pending_tailcall();
14691470
// Drain the refs that keep the initial callee's raw pointers alive.
1470-
let initial_refs = unsafe { &mut *self.pending_tailcall_refs.get() }
1471-
.drain(..)
1472-
.collect();
1471+
let initial_refs = mem::take(unsafe { &mut *self.pending_tailcall_refs.get() });
14731472
frame_stack.push(SuspendedFrame {
14741473
iframe: iframe as *mut crate::frame::InterpreterFrame,
14751474
entry_state,
@@ -1498,9 +1497,7 @@ impl VirtualMachine {
14981497
let result = crate::frame::run_iframe(callee, self);
14991498
match result {
15001499
Ok(ExecutionResult::TailCall) => {
1501-
let refs = unsafe { &mut *self.pending_tailcall_refs.get() }
1502-
.drain(..)
1503-
.collect();
1500+
let refs = mem::take(unsafe { &mut *self.pending_tailcall_refs.get() });
15041501
frame_stack.push(SuspendedFrame {
15051502
iframe: callee_ptr,
15061503
entry_state: callee_entry,
@@ -1548,9 +1545,7 @@ impl VirtualMachine {
15481545
let result = crate::frame::run_iframe(caller_iframe, self);
15491546
match result {
15501547
Ok(ExecutionResult::TailCall) => {
1551-
let refs = unsafe { &mut *self.pending_tailcall_refs.get() }
1552-
.drain(..)
1553-
.collect();
1548+
let refs = mem::take(unsafe { &mut *self.pending_tailcall_refs.get() });
15541549
drop(_caller_refs);
15551550
frame_stack.push(SuspendedFrame {
15561551
iframe: caller_iframe_ptr,

0 commit comments

Comments
 (0)