diff options
Diffstat (limited to 'core/shared_queue.rs')
-rw-r--r-- | core/shared_queue.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/core/shared_queue.rs b/core/shared_queue.rs index cd1856813..0d2fc15c3 100644 --- a/core/shared_queue.rs +++ b/core/shared_queue.rs @@ -45,7 +45,9 @@ impl SharedQueue { let buf = buf.into_boxed_slice(); let buf = unsafe { v8::SharedArrayBuffer::new_backing_store_from_boxed_slice(buf) }; - let mut q = Self { buf }; + let mut q = Self { + buf: buf.make_shared(), + }; q.reset(); q } @@ -55,17 +57,11 @@ impl SharedQueue { } pub fn bytes(&self) -> &[u8] { - unsafe { - // This is quite bad. The rusty_v8 issue that makes it necessitates it - // just barely missed the rusty_v8 v0.1.1 release cutoff. - #[allow(clippy::cast_ref_to_mut)] - let self_mut = &mut *(self as *const _ as *mut Self); - self_mut.bytes_mut() - } + unsafe { &*self.buf.get() } } pub fn bytes_mut(&mut self) -> &mut [u8] { - self.buf.data_bytes() + unsafe { &mut *self.buf.get() } } fn reset(&mut self) { |