diff --git a/CHANGELOG.md b/CHANGELOG.md index be323fd2eed..ab51bc2568b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - Add unsafe API `with_embedded_python_interpreter` to initalize a Python interpreter, execute a closure, and finalize the interpreter. [#1355](https://github.com/PyO3/pyo3/pull/1355) - Add `serde` feature to support `Serialize/Deserialize` for `Py`. [#1366](https://github.com/PyO3/pyo3/pull/1366) +- Add FFI definition `_PyCFunctionFastWithKeywords` on Python 3.7 and up. [#1384](https://github.com/PyO3/pyo3/pull/1384) ### Changed - `prepare_freethreaded_python` will no longer register an `atexit` handler to call `Py_Finalize`. [#1355](https://github.com/PyO3/pyo3/pull/1355) diff --git a/src/ffi/methodobject.rs b/src/ffi/methodobject.rs index c827f2741fc..fdf1797ea2a 100644 --- a/src/ffi/methodobject.rs +++ b/src/ffi/methodobject.rs @@ -30,6 +30,14 @@ pub type PyCFunctionWithKeywords = unsafe extern "C" fn( kwds: *mut PyObject, ) -> *mut PyObject; +#[cfg(Py_3_7)] +pub type _PyCFunctionFastWithKeywords = unsafe extern "C" fn( + slf: *mut PyObject, + args: *const *mut PyObject, + nargs: crate::ffi::pyport::Py_ssize_t, + kwnames: *mut PyObject, +) -> *mut PyObject; + extern "C" { #[cfg_attr(PyPy, link_name = "PyPyCFunction_GetFunction")] pub fn PyCFunction_GetFunction(f: *mut PyObject) -> Option;