make PyDictObject, PyFloatObject opaque under limited API
This commit is contained in:
parent
643d0af3bf
commit
72ce3081e6
|
@ -3,6 +3,19 @@ use crate::ffi::object::*;
|
|||
use crate::ffi::pyport::Py_ssize_t;
|
||||
use std::os::raw::c_int;
|
||||
|
||||
opaque_struct!(PyDictKeysObject);
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
// Not moved because dict.rs uses PyDictObject extensively.
|
||||
pub struct PyDictObject {
|
||||
pub ob_base: PyObject,
|
||||
pub ma_used: Py_ssize_t,
|
||||
pub ma_version_tag: u64,
|
||||
pub ma_keys: *mut PyDictKeysObject,
|
||||
pub ma_values: *mut *mut PyObject,
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
// skipped _PyDict_GetItem_KnownHash
|
||||
// skipped _PyDict_GetItemIdWithError
|
||||
|
|
|
@ -107,17 +107,6 @@ extern "C" {
|
|||
pub static mut PyDictRevIterItem_Type: PyTypeObject;
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
// TODO: move to cpython/dictobject.rs
|
||||
// Not moved because dict.rs uses PyDictObject extensively.
|
||||
pub struct PyDictObject {
|
||||
pub ob_base: PyObject,
|
||||
pub ma_used: Py_ssize_t,
|
||||
pub ma_version_tag: u64,
|
||||
pub ma_keys: *mut PyDictKeysObject,
|
||||
pub ma_values: *mut *mut PyObject,
|
||||
}
|
||||
|
||||
// TODO: move to cpython/dictobject.rs
|
||||
opaque_struct!(PyDictKeysObject);
|
||||
#[cfg(Py_LIMITED_API)]
|
||||
// TODO: remove (see https://github.com/PyO3/pyo3/pull/1341#issuecomment-751515985)
|
||||
opaque_struct!(PyDictObject);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
use crate::ffi::object::*;
|
||||
use std::os::raw::{c_double, c_int};
|
||||
|
||||
// TODO: mark non-limited
|
||||
// currently used by types/floatob.rs
|
||||
#[cfg(Py_LIMITED_API)]
|
||||
// TODO: remove (see https://github.com/PyO3/pyo3/pull/1341#issuecomment-751515985)
|
||||
opaque_struct!(PyFloatObject);
|
||||
|
||||
#[cfg(not(Py_LIMITED_API))]
|
||||
#[repr(C)]
|
||||
pub struct PyFloatObject {
|
||||
pub ob_base: PyObject,
|
||||
|
|
Loading…
Reference in a new issue