Skip to content

Specialization of member descriptors only handles Py_T_OBJECT_EX but _Py_T_OBJECT seems more common #111772

@markshannon

Description

@markshannon

Despite _Py_T_OBJECT being marked as deprecated in descrobject.h it is commonly used in the standard library.
LOAD_ATTR_SLOT de-optimizes if the stored value is NULL. If the stored value is not NULL, both _Py_T_OBJECT and Py_T_OBJECT_EX act the same, so we can reuse LOAD_ATTR_SLOT for _Py_T_OBJECT.

For storing attributes, _Py_T_OBJECT and Py_T_OBJECT_EX are exactly the same.

I don't know why _Py_T_OBJECT is deprecated, the semantics seem quite reasonable.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    performancePerformance or resource usage
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions