Skip to content

Commit 86edc72

Browse files
committed
Fix miri UB
1 parent 65cde9a commit 86edc72

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

vm/src/pyobjectrc.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ type OnceBox<T> = once_cell::unsync::OnceCell<Box<T>>;
5757
struct Erased;
5858

5959
struct PyObjVTable {
60-
drop_dealloc: unsafe fn(&mut PyObject),
60+
drop_dealloc: unsafe fn(*mut PyObject),
6161
debug: unsafe fn(&PyObject, &mut fmt::Formatter) -> fmt::Result,
6262
}
63-
unsafe fn drop_dealloc_obj<T: PyObjectPayload>(x: &mut PyObject) {
64-
Box::from_raw(x as *mut PyObject as *mut PyInner<T>);
63+
unsafe fn drop_dealloc_obj<T: PyObjectPayload>(x: *mut PyObject) {
64+
Box::from_raw(x as *mut PyInner<T>);
6565
}
6666
unsafe fn debug_obj<T: PyObjectPayload>(x: &PyObject, f: &mut fmt::Formatter) -> fmt::Result {
6767
let x = &*(x as *const PyObject as *const PyInner<T>);
@@ -683,7 +683,7 @@ impl PyObjectRef {
683683
}
684684

685685
let drop_dealloc = self.0.vtable.drop_dealloc;
686-
unsafe { drop_dealloc(self.ptr.as_mut()) }
686+
unsafe { drop_dealloc(self.ptr.as_ptr()) }
687687
}
688688
}
689689

0 commit comments

Comments
 (0)