pypy: re-enable PyFunction on 3.8+
This commit is contained in:
parent
af2ad45c73
commit
24032fe110
|
@ -0,0 +1 @@
|
||||||
|
Re-enable `PyFunction` on when building for abi3 or PyPy.
|
|
@ -53,12 +53,12 @@ pub struct PyFunctionObject {
|
||||||
|
|
||||||
#[cfg_attr(windows, link(name = "pythonXY"))]
|
#[cfg_attr(windows, link(name = "pythonXY"))]
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#[cfg(not(PyPy))] // broken, see https://foss.heptapod.net/pypy/pypy/-/issues/3776
|
#[cfg(not(all(PyPy, not(Py_3_8))))]
|
||||||
#[cfg_attr(PyPy, link_name = "PyPyFunction_Type")]
|
#[cfg_attr(PyPy, link_name = "PyPyFunction_Type")]
|
||||||
pub static mut PyFunction_Type: crate::PyTypeObject;
|
pub static mut PyFunction_Type: crate::PyTypeObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(PyPy))]
|
#[cfg(not(all(PyPy, not(Py_3_8))))]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub unsafe fn PyFunction_Check(op: *mut PyObject) -> c_int {
|
pub unsafe fn PyFunction_Check(op: *mut PyObject) -> c_int {
|
||||||
(crate::Py_TYPE(op) == addr_of_mut_shim!(PyFunction_Type)) as c_int
|
(crate::Py_TYPE(op) == addr_of_mut_shim!(PyFunction_Type)) as c_int
|
||||||
|
|
|
@ -179,8 +179,8 @@ impl PyCFunction {
|
||||||
|
|
||||||
/// Represents a Python function object.
|
/// Represents a Python function object.
|
||||||
#[repr(transparent)]
|
#[repr(transparent)]
|
||||||
#[cfg(not(any(PyPy, Py_LIMITED_API)))]
|
#[cfg(all(not(Py_LIMITED_API), not(all(PyPy, not(Py_3_8)))))]
|
||||||
pub struct PyFunction(PyAny);
|
pub struct PyFunction(PyAny);
|
||||||
|
|
||||||
#[cfg(not(any(PyPy, Py_LIMITED_API)))]
|
#[cfg(all(not(Py_LIMITED_API), not(all(PyPy, not(Py_3_8)))))]
|
||||||
pyobject_native_type_core!(PyFunction, ffi::PyFunction_Type, #checkfunction=ffi::PyFunction_Check);
|
pyobject_native_type_core!(PyFunction, ffi::PyFunction_Type, #checkfunction=ffi::PyFunction_Check);
|
||||||
|
|
Loading…
Reference in New Issue