ffi: use _Py_NewRef for clarity
This commit is contained in:
parent
7c4503e0ca
commit
03ba4a5597
|
@ -257,8 +257,7 @@ macro_rules! define_pyclass_binary_operator_slot {
|
|||
_slf: *mut ffi::PyObject,
|
||||
_other: *mut ffi::PyObject,
|
||||
) -> PyResult<*mut ffi::PyObject> {
|
||||
ffi::Py_INCREF(ffi::Py_NotImplemented());
|
||||
Ok(ffi::Py_NotImplemented())
|
||||
Ok(ffi::_Py_NewRef(ffi::Py_NotImplemented()))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -273,8 +272,7 @@ macro_rules! define_pyclass_binary_operator_slot {
|
|||
_slf: *mut ffi::PyObject,
|
||||
_other: *mut ffi::PyObject,
|
||||
) -> PyResult<*mut ffi::PyObject> {
|
||||
ffi::Py_INCREF(ffi::Py_NotImplemented());
|
||||
Ok(ffi::Py_NotImplemented())
|
||||
Ok(ffi::_Py_NewRef(ffi::Py_NotImplemented()))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -429,8 +427,7 @@ slot_fragment_trait! {
|
|||
_other: *mut ffi::PyObject,
|
||||
_mod: *mut ffi::PyObject,
|
||||
) -> PyResult<*mut ffi::PyObject> {
|
||||
ffi::Py_INCREF(ffi::Py_NotImplemented());
|
||||
Ok(ffi::Py_NotImplemented())
|
||||
Ok(ffi::_Py_NewRef(ffi::Py_NotImplemented()))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -446,8 +443,7 @@ slot_fragment_trait! {
|
|||
_other: *mut ffi::PyObject,
|
||||
_mod: *mut ffi::PyObject,
|
||||
) -> PyResult<*mut ffi::PyObject> {
|
||||
ffi::Py_INCREF(ffi::Py_NotImplemented());
|
||||
Ok(ffi::Py_NotImplemented())
|
||||
Ok(ffi::_Py_NewRef(ffi::Py_NotImplemented()))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -64,13 +64,7 @@ where
|
|||
T: AsPyPointer,
|
||||
{
|
||||
fn into_ptr(self) -> *mut ffi::PyObject {
|
||||
let ptr = self.as_ptr();
|
||||
if !ptr.is_null() {
|
||||
unsafe {
|
||||
ffi::Py_INCREF(ptr);
|
||||
}
|
||||
}
|
||||
ptr
|
||||
unsafe { ffi::_Py_XNewRef(self.as_ptr()) }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -105,8 +105,7 @@ impl PyDict {
|
|||
let ptr = ffi::PyDict_GetItem(self.as_ptr(), key);
|
||||
NonNull::new(ptr).map(|p| {
|
||||
// PyDict_GetItem return s borrowed ptr, must make it owned for safety (see #890).
|
||||
ffi::Py_INCREF(p.as_ptr());
|
||||
self.py().from_owned_ptr(p.as_ptr())
|
||||
self.py().from_owned_ptr(ffi::_Py_NewRef(p.as_ptr()))
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -196,9 +195,10 @@ impl<'py> Iterator for PyDictIterator<'py> {
|
|||
if ffi::PyDict_Next(self.dict.as_ptr(), &mut self.pos, &mut key, &mut value) != 0 {
|
||||
let py = self.dict.py();
|
||||
// PyDict_Next returns borrowed values; for safety must make them owned (see #890)
|
||||
ffi::Py_INCREF(key);
|
||||
ffi::Py_INCREF(value);
|
||||
Some((py.from_owned_ptr(key), py.from_owned_ptr(value)))
|
||||
Some((
|
||||
py.from_owned_ptr(ffi::_Py_NewRef(key)),
|
||||
py.from_owned_ptr(ffi::_Py_NewRef(value)),
|
||||
))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
|
@ -140,8 +140,7 @@ impl PyModule {
|
|||
unsafe {
|
||||
// PyModule_GetDict returns borrowed ptr; must make owned for safety (see #890).
|
||||
let ptr = ffi::PyModule_GetDict(self.as_ptr());
|
||||
ffi::Py_INCREF(ptr);
|
||||
self.py().from_owned_ptr(ptr)
|
||||
self.py().from_owned_ptr(ffi::_Py_NewRef(ptr))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -164,8 +164,7 @@ impl<'py> Iterator for PySetIterator<'py> {
|
|||
let mut hash: ffi::Py_hash_t = 0;
|
||||
if ffi::_PySet_NextEntry(self.set.as_ptr(), &mut self.pos, &mut key, &mut hash) != 0 {
|
||||
// _PySet_NextEntry returns borrowed object; for safety must make owned (see #890)
|
||||
ffi::Py_INCREF(key);
|
||||
Some(self.set.py().from_owned_ptr(key))
|
||||
Some(self.set.py().from_owned_ptr(ffi::_Py_NewRef(key)))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
|
@ -39,8 +39,7 @@ impl PyBufferProtocol for TestBufferErrors {
|
|||
}
|
||||
|
||||
unsafe {
|
||||
(*view).obj = slf.as_ptr();
|
||||
ffi::Py_INCREF((*view).obj);
|
||||
(*view).obj = ffi::_Py_NewRef(slf.as_ptr());
|
||||
}
|
||||
|
||||
let bytes = &slf.buf;
|
||||
|
|
|
@ -33,8 +33,7 @@ impl PyBufferProtocol for TestBufferClass {
|
|||
}
|
||||
|
||||
unsafe {
|
||||
(*view).obj = slf.as_ptr();
|
||||
ffi::Py_INCREF((*view).obj);
|
||||
(*view).obj = ffi::_Py_NewRef(slf.as_ptr());
|
||||
}
|
||||
|
||||
let bytes = &slf.vec;
|
||||
|
|
Loading…
Reference in a new issue