summaryrefslogtreecommitdiff
path: root/core/shared_queue.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/shared_queue.rs')
-rw-r--r--core/shared_queue.rs14
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) {