luaur_common/methods/vec_deque_pop_back.rs
1use crate::macros::luau_assert::LUAU_ASSERT;
2use crate::records::vec_deque::VecDeque;
3use core::ptr::drop_in_place;
4
5impl<T> VecDeque<T> {
6 pub(crate) fn pop_back_impl(&mut self) {
7 LUAU_ASSERT!(!self.empty());
8
9 self.queue_size -= 1;
10 let next_back = self.logicalToPhysical(self.queue_size);
11
12 unsafe {
13 if let Some(buffer) = self.buffer {
14 drop_in_place(buffer.as_ptr().add(next_back));
15 }
16 }
17 }
18}