obj.refs.fetch_add(1, Ordering::SeqCst);
}
fn dec_refs(obj: &mut Self) -> bool {
- obj.refs.fetch_sub(1, Ordering::SeqCst) == 0
+ obj.refs.fetch_sub(1, Ordering::SeqCst) == 1
}
fn get_num_refs(obj: &Self) -> usize {
obj.refs.load(Ordering::Relaxed)
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);
}
}
}