X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Frefs.rs;h=292c8887d4cf376c3413d0faf42e37e10cd10d6c;hb=72c6f2634b57fe73d101376602e21b81bebf3c1a;hp=023a2136ad99fdafebe5d653957eb372e2f22cae;hpb=3485eca4fe0f67b0d204f2ce63afff0fcacb9c94;p=nihav.git diff --git a/nihav-core/src/refs.rs b/nihav-core/src/refs.rs index 023a213..292c888 100644 --- a/nihav-core/src/refs.rs +++ b/nihav-core/src/refs.rs @@ -35,6 +35,9 @@ pub struct NABufferRef { ptr: *mut NABufferData, } +unsafe impl Sync for NABufferRef {} +unsafe impl Send for NABufferRef {} + impl NABufferRef { pub fn new(val: T) -> Self { let bdata = NABufferData::new(val); @@ -83,7 +86,8 @@ impl Drop for NABufferRef { fn drop(&mut self) { unsafe { if NABufferData::dec_refs(self.ptr.as_mut().unwrap()) { - std::ptr::drop_in_place(self.ptr); + let data = Box::from_raw(self.ptr); + std::mem::drop(data); } } }