Skip to content

gh-107253: Use Py_T_OBJECT_EX instead of _Py_T_OBJECT #107254

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Modules/_collectionsmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -2466,7 +2466,7 @@ tuplegetter_repr(_tuplegetterobject *self)


static PyMemberDef tuplegetter_members[] = {
{"__doc__", _Py_T_OBJECT, offsetof(_tuplegetterobject, doc), 0},
{"__doc__", Py_T_OBJECT_EX, offsetof(_tuplegetterobject, doc), 0},
{0}
};

Expand Down
4 changes: 2 additions & 2 deletions Modules/_csv.c
Original file line number Diff line number Diff line change
Expand Up @@ -971,7 +971,7 @@ static struct PyMethodDef Reader_methods[] = {
#define R_OFF(x) offsetof(ReaderObj, x)

static struct PyMemberDef Reader_memberlist[] = {
{ "dialect", _Py_T_OBJECT, R_OFF(dialect), Py_READONLY },
{ "dialect", Py_T_OBJECT_EX, R_OFF(dialect), Py_READONLY },
{ "line_num", Py_T_ULONG, R_OFF(line_num), Py_READONLY },
{ NULL }
};
Expand Down Expand Up @@ -1365,7 +1365,7 @@ static struct PyMethodDef Writer_methods[] = {
#define W_OFF(x) offsetof(WriterObj, x)

static struct PyMemberDef Writer_memberlist[] = {
{ "dialect", _Py_T_OBJECT, W_OFF(dialect), Py_READONLY },
{ "dialect", Py_T_OBJECT_EX, W_OFF(dialect), Py_READONLY },
{ NULL }
};

Expand Down
2 changes: 1 addition & 1 deletion Modules/_ctypes/_ctypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -2759,7 +2759,7 @@ PyCData_dealloc(PyObject *self)
}

static PyMemberDef PyCData_members[] = {
{ "_b_base_", _Py_T_OBJECT,
{ "_b_base_", Py_T_OBJECT_EX,
offsetof(CDataObject, b_base), Py_READONLY,
"the base object" },
{ "_b_needsfree_", Py_T_INT,
Expand Down
2 changes: 1 addition & 1 deletion Modules/_ctypes/callproc.c
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ PyCArg_repr(PyCArgObject *self)
}

static PyMemberDef PyCArgType_members[] = {
{ "_obj", _Py_T_OBJECT,
{ "_obj", Py_T_OBJECT_EX,
offsetof(PyCArgObject, obj), Py_READONLY,
"the wrapped object" },
{ NULL },
Expand Down
8 changes: 4 additions & 4 deletions Modules/_functoolsmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,11 @@ PyDoc_STRVAR(partial_doc,

#define OFF(x) offsetof(partialobject, x)
static PyMemberDef partial_memberlist[] = {
{"func", _Py_T_OBJECT, OFF(fn), Py_READONLY,
{"func", Py_T_OBJECT_EX, OFF(fn), Py_READONLY,
"function object to use in future partial calls"},
{"args", _Py_T_OBJECT, OFF(args), Py_READONLY,
{"args", Py_T_OBJECT_EX, OFF(args), Py_READONLY,
"tuple of arguments to future partial calls"},
{"keywords", _Py_T_OBJECT, OFF(kw), Py_READONLY,
{"keywords", Py_T_OBJECT_EX, OFF(kw), Py_READONLY,
"dictionary of keyword arguments to future partial calls"},
{"__weaklistoffset__", Py_T_PYSSIZET,
offsetof(partialobject, weakreflist), Py_READONLY},
Expand Down Expand Up @@ -540,7 +540,7 @@ keyobject_traverse(keyobject *ko, visitproc visit, void *arg)
}

static PyMemberDef keyobject_members[] = {
{"obj", _Py_T_OBJECT,
{"obj", Py_T_OBJECT_EX,
offsetof(keyobject, object), 0,
PyDoc_STR("Value wrapped by a key function.")},
{NULL}
Expand Down
6 changes: 3 additions & 3 deletions Modules/_io/bufferedio.c
Original file line number Diff line number Diff line change
Expand Up @@ -2478,7 +2478,7 @@ static PyMethodDef bufferedreader_methods[] = {
};

static PyMemberDef bufferedreader_members[] = {
{"raw", _Py_T_OBJECT, offsetof(buffered, raw), Py_READONLY},
{"raw", Py_T_OBJECT_EX, offsetof(buffered, raw), Py_READONLY},
{"_finalizing", Py_T_BOOL, offsetof(buffered, finalizing), 0},
{"__weaklistoffset__", Py_T_PYSSIZET, offsetof(buffered, weakreflist), Py_READONLY},
{"__dictoffset__", Py_T_PYSSIZET, offsetof(buffered, dict), Py_READONLY},
Expand Down Expand Up @@ -2538,7 +2538,7 @@ static PyMethodDef bufferedwriter_methods[] = {
};

static PyMemberDef bufferedwriter_members[] = {
{"raw", _Py_T_OBJECT, offsetof(buffered, raw), Py_READONLY},
{"raw", Py_T_OBJECT_EX, offsetof(buffered, raw), Py_READONLY},
{"_finalizing", Py_T_BOOL, offsetof(buffered, finalizing), 0},
{"__weaklistoffset__", Py_T_PYSSIZET, offsetof(buffered, weakreflist), Py_READONLY},
{"__dictoffset__", Py_T_PYSSIZET, offsetof(buffered, dict), Py_READONLY},
Expand Down Expand Up @@ -2656,7 +2656,7 @@ static PyMethodDef bufferedrandom_methods[] = {
};

static PyMemberDef bufferedrandom_members[] = {
{"raw", _Py_T_OBJECT, offsetof(buffered, raw), Py_READONLY},
{"raw", Py_T_OBJECT_EX, offsetof(buffered, raw), Py_READONLY},
{"_finalizing", Py_T_BOOL, offsetof(buffered, finalizing), 0},
{"__weaklistoffset__", Py_T_PYSSIZET, offsetof(buffered, weakreflist), Py_READONLY},
{"__dictoffset__", Py_T_PYSSIZET, offsetof(buffered, dict), Py_READONLY},
Expand Down
4 changes: 2 additions & 2 deletions Modules/_io/textio.c
Original file line number Diff line number Diff line change
Expand Up @@ -3230,8 +3230,8 @@ static PyMethodDef textiowrapper_methods[] = {
};

static PyMemberDef textiowrapper_members[] = {
{"encoding", _Py_T_OBJECT, offsetof(textio, encoding), Py_READONLY},
{"buffer", _Py_T_OBJECT, offsetof(textio, buffer), Py_READONLY},
{"encoding", Py_T_OBJECT_EX, offsetof(textio, encoding), Py_READONLY},
{"buffer", Py_T_OBJECT_EX, offsetof(textio, buffer), Py_READONLY},
{"line_buffering", Py_T_BOOL, offsetof(textio, line_buffering), Py_READONLY},
{"write_through", Py_T_BOOL, offsetof(textio, write_through), Py_READONLY},
{"_finalizing", Py_T_BOOL, offsetof(textio, finalizing), 0},
Expand Down
22 changes: 11 additions & 11 deletions Modules/_json.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ typedef struct _PyScannerObject {

static PyMemberDef scanner_members[] = {
{"strict", Py_T_BOOL, offsetof(PyScannerObject, strict), Py_READONLY, "strict"},
{"object_hook", _Py_T_OBJECT, offsetof(PyScannerObject, object_hook), Py_READONLY, "object_hook"},
{"object_pairs_hook", _Py_T_OBJECT, offsetof(PyScannerObject, object_pairs_hook), Py_READONLY},
{"parse_float", _Py_T_OBJECT, offsetof(PyScannerObject, parse_float), Py_READONLY, "parse_float"},
{"parse_int", _Py_T_OBJECT, offsetof(PyScannerObject, parse_int), Py_READONLY, "parse_int"},
{"parse_constant", _Py_T_OBJECT, offsetof(PyScannerObject, parse_constant), Py_READONLY, "parse_constant"},
{"object_hook", Py_T_OBJECT_EX, offsetof(PyScannerObject, object_hook), Py_READONLY, "object_hook"},
{"object_pairs_hook", Py_T_OBJECT_EX, offsetof(PyScannerObject, object_pairs_hook), Py_READONLY},
{"parse_float", Py_T_OBJECT_EX, offsetof(PyScannerObject, parse_float), Py_READONLY, "parse_float"},
{"parse_int", Py_T_OBJECT_EX, offsetof(PyScannerObject, parse_int), Py_READONLY, "parse_int"},
{"parse_constant", Py_T_OBJECT_EX, offsetof(PyScannerObject, parse_constant), Py_READONLY, "parse_constant"},
{NULL}
};

Expand All @@ -52,12 +52,12 @@ typedef struct _PyEncoderObject {
} PyEncoderObject;

static PyMemberDef encoder_members[] = {
{"markers", _Py_T_OBJECT, offsetof(PyEncoderObject, markers), Py_READONLY, "markers"},
{"default", _Py_T_OBJECT, offsetof(PyEncoderObject, defaultfn), Py_READONLY, "default"},
{"encoder", _Py_T_OBJECT, offsetof(PyEncoderObject, encoder), Py_READONLY, "encoder"},
{"indent", _Py_T_OBJECT, offsetof(PyEncoderObject, indent), Py_READONLY, "indent"},
{"key_separator", _Py_T_OBJECT, offsetof(PyEncoderObject, key_separator), Py_READONLY, "key_separator"},
{"item_separator", _Py_T_OBJECT, offsetof(PyEncoderObject, item_separator), Py_READONLY, "item_separator"},
{"markers", Py_T_OBJECT_EX, offsetof(PyEncoderObject, markers), Py_READONLY, "markers"},
{"default", Py_T_OBJECT_EX, offsetof(PyEncoderObject, defaultfn), Py_READONLY, "default"},
{"encoder", Py_T_OBJECT_EX, offsetof(PyEncoderObject, encoder), Py_READONLY, "encoder"},
{"indent", Py_T_OBJECT_EX, offsetof(PyEncoderObject, indent), Py_READONLY, "indent"},
{"key_separator", Py_T_OBJECT_EX, offsetof(PyEncoderObject, key_separator), Py_READONLY, "key_separator"},
{"item_separator", Py_T_OBJECT_EX, offsetof(PyEncoderObject, item_separator), Py_READONLY, "item_separator"},
{"sort_keys", Py_T_BOOL, offsetof(PyEncoderObject, sort_keys), Py_READONLY, "sort_keys"},
{"skipkeys", Py_T_BOOL, offsetof(PyEncoderObject, skipkeys), Py_READONLY, "skipkeys"},
{NULL}
Expand Down
24 changes: 12 additions & 12 deletions Modules/_sqlite/connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -2511,18 +2511,18 @@ static PyMethodDef connection_methods[] = {

static struct PyMemberDef connection_members[] =
{
{"Warning", _Py_T_OBJECT, offsetof(pysqlite_Connection, Warning), Py_READONLY},
{"Error", _Py_T_OBJECT, offsetof(pysqlite_Connection, Error), Py_READONLY},
{"InterfaceError", _Py_T_OBJECT, offsetof(pysqlite_Connection, InterfaceError), Py_READONLY},
{"DatabaseError", _Py_T_OBJECT, offsetof(pysqlite_Connection, DatabaseError), Py_READONLY},
{"DataError", _Py_T_OBJECT, offsetof(pysqlite_Connection, DataError), Py_READONLY},
{"OperationalError", _Py_T_OBJECT, offsetof(pysqlite_Connection, OperationalError), Py_READONLY},
{"IntegrityError", _Py_T_OBJECT, offsetof(pysqlite_Connection, IntegrityError), Py_READONLY},
{"InternalError", _Py_T_OBJECT, offsetof(pysqlite_Connection, InternalError), Py_READONLY},
{"ProgrammingError", _Py_T_OBJECT, offsetof(pysqlite_Connection, ProgrammingError), Py_READONLY},
{"NotSupportedError", _Py_T_OBJECT, offsetof(pysqlite_Connection, NotSupportedError), Py_READONLY},
{"row_factory", _Py_T_OBJECT, offsetof(pysqlite_Connection, row_factory)},
{"text_factory", _Py_T_OBJECT, offsetof(pysqlite_Connection, text_factory)},
{"Warning", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, Warning), Py_READONLY},
{"Error", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, Error), Py_READONLY},
{"InterfaceError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, InterfaceError), Py_READONLY},
{"DatabaseError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, DatabaseError), Py_READONLY},
{"DataError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, DataError), Py_READONLY},
{"OperationalError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, OperationalError), Py_READONLY},
{"IntegrityError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, IntegrityError), Py_READONLY},
{"InternalError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, InternalError), Py_READONLY},
{"ProgrammingError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, ProgrammingError), Py_READONLY},
{"NotSupportedError", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, NotSupportedError), Py_READONLY},
{"row_factory", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, row_factory)},
{"text_factory", Py_T_OBJECT_EX, offsetof(pysqlite_Connection, text_factory)},
{NULL}
};

Expand Down
8 changes: 4 additions & 4 deletions Modules/_sqlite/cursor.c
Original file line number Diff line number Diff line change
Expand Up @@ -1325,12 +1325,12 @@ static PyMethodDef cursor_methods[] = {

static struct PyMemberDef cursor_members[] =
{
{"connection", _Py_T_OBJECT, offsetof(pysqlite_Cursor, connection), Py_READONLY},
{"description", _Py_T_OBJECT, offsetof(pysqlite_Cursor, description), Py_READONLY},
{"connection", Py_T_OBJECT_EX, offsetof(pysqlite_Cursor, connection), Py_READONLY},
{"description", Py_T_OBJECT_EX, offsetof(pysqlite_Cursor, description), Py_READONLY},
{"arraysize", Py_T_INT, offsetof(pysqlite_Cursor, arraysize), 0},
{"lastrowid", _Py_T_OBJECT, offsetof(pysqlite_Cursor, lastrowid), Py_READONLY},
{"lastrowid", Py_T_OBJECT_EX, offsetof(pysqlite_Cursor, lastrowid), Py_READONLY},
{"rowcount", Py_T_LONG, offsetof(pysqlite_Cursor, rowcount), Py_READONLY},
{"row_factory", _Py_T_OBJECT, offsetof(pysqlite_Cursor, row_factory), 0},
{"row_factory", Py_T_OBJECT_EX, offsetof(pysqlite_Cursor, row_factory), 0},
{"__weaklistoffset__", Py_T_PYSSIZET, offsetof(pysqlite_Cursor, in_weakreflist), Py_READONLY},
{NULL}
};
Expand Down
8 changes: 4 additions & 4 deletions Modules/_sre/sre.c
Original file line number Diff line number Diff line change
Expand Up @@ -2994,7 +2994,7 @@ static PyGetSetDef pattern_getset[] = {

#define PAT_OFF(x) offsetof(PatternObject, x)
static PyMemberDef pattern_members[] = {
{"pattern", _Py_T_OBJECT, PAT_OFF(pattern), Py_READONLY,
{"pattern", Py_T_OBJECT_EX, PAT_OFF(pattern), Py_READONLY,
"The pattern string from which the RE object was compiled."},
{"flags", Py_T_INT, PAT_OFF(flags), Py_READONLY,
"The regex matching flags."},
Expand Down Expand Up @@ -3053,9 +3053,9 @@ static PyGetSetDef match_getset[] = {

#define MATCH_OFF(x) offsetof(MatchObject, x)
static PyMemberDef match_members[] = {
{"string", _Py_T_OBJECT, MATCH_OFF(string), Py_READONLY,
{"string", Py_T_OBJECT_EX, MATCH_OFF(string), Py_READONLY,
"The string passed to match() or search()."},
{"re", _Py_T_OBJECT, MATCH_OFF(pattern), Py_READONLY,
{"re", Py_T_OBJECT_EX, MATCH_OFF(pattern), Py_READONLY,
"The regular expression object."},
{"pos", Py_T_PYSSIZET, MATCH_OFF(pos), Py_READONLY,
"The index into the string at which the RE engine started looking for a match."},
Expand Down Expand Up @@ -3103,7 +3103,7 @@ static PyMethodDef scanner_methods[] = {

#define SCAN_OFF(x) offsetof(ScannerObject, x)
static PyMemberDef scanner_members[] = {
{"pattern", _Py_T_OBJECT, SCAN_OFF(pattern), Py_READONLY},
{"pattern", Py_T_OBJECT_EX, SCAN_OFF(pattern), Py_READONLY},
{NULL} /* Sentinel */
};

Expand Down
4 changes: 2 additions & 2 deletions Modules/cjkcodecs/multibytecodec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1613,7 +1613,7 @@ static struct PyMethodDef mbstreamreader_methods[] = {
};

static PyMemberDef mbstreamreader_members[] = {
{"stream", _Py_T_OBJECT,
{"stream", Py_T_OBJECT_EX,
offsetof(MultibyteStreamReaderObject, stream),
Py_READONLY, NULL},
{NULL,}
Expand Down Expand Up @@ -1921,7 +1921,7 @@ static struct PyMethodDef mbstreamwriter_methods[] = {
};

static PyMemberDef mbstreamwriter_members[] = {
{"stream", _Py_T_OBJECT,
{"stream", Py_T_OBJECT_EX,
offsetof(MultibyteStreamWriterObject, stream),
Py_READONLY, NULL},
{NULL,}
Expand Down
2 changes: 1 addition & 1 deletion Modules/pyexpat.c
Original file line number Diff line number Diff line change
Expand Up @@ -1470,7 +1470,7 @@ xmlparse_specified_attributes_setter(xmlparseobject *self, PyObject *v, void *cl
}

static PyMemberDef xmlparse_members[] = {
{"intern", _Py_T_OBJECT, offsetof(xmlparseobject, intern), Py_READONLY, NULL},
{"intern", Py_T_OBJECT_EX, offsetof(xmlparseobject, intern), Py_READONLY, NULL},
{NULL}
};

Expand Down
4 changes: 2 additions & 2 deletions Modules/zlibmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1801,8 +1801,8 @@ static PyMethodDef ZlibDecompressor_methods[] = {

#define COMP_OFF(x) offsetof(compobject, x)
static PyMemberDef Decomp_members[] = {
{"unused_data", _Py_T_OBJECT, COMP_OFF(unused_data), Py_READONLY},
{"unconsumed_tail", _Py_T_OBJECT, COMP_OFF(unconsumed_tail), Py_READONLY},
{"unused_data", Py_T_OBJECT_EX, COMP_OFF(unused_data), Py_READONLY},
{"unconsumed_tail", Py_T_OBJECT_EX, COMP_OFF(unconsumed_tail), Py_READONLY},
{"eof", Py_T_BOOL, COMP_OFF(eof), Py_READONLY},
{NULL},
};
Expand Down
6 changes: 3 additions & 3 deletions Objects/classobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,9 @@ static PyMethodDef method_methods[] = {
#define MO_OFF(x) offsetof(PyMethodObject, x)

static PyMemberDef method_memberlist[] = {
{"__func__", _Py_T_OBJECT, MO_OFF(im_func), Py_READONLY,
{"__func__", Py_T_OBJECT_EX, MO_OFF(im_func), Py_READONLY,
"the function (or other callable) implementing a method"},
{"__self__", _Py_T_OBJECT, MO_OFF(im_self), Py_READONLY,
{"__self__", Py_T_OBJECT_EX, MO_OFF(im_self), Py_READONLY,
"the instance to which a method is bound"},
{NULL} /* Sentinel */
};
Expand Down Expand Up @@ -372,7 +372,7 @@ PyInstanceMethod_Function(PyObject *im)
#define IMO_OFF(x) offsetof(PyInstanceMethodObject, x)

static PyMemberDef instancemethod_memberlist[] = {
{"__func__", _Py_T_OBJECT, IMO_OFF(func), Py_READONLY,
{"__func__", Py_T_OBJECT_EX, IMO_OFF(func), Py_READONLY,
"the function (or other callable) implementing a method"},
{NULL} /* Sentinel */
};
Expand Down
14 changes: 7 additions & 7 deletions Objects/codeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -1883,14 +1883,14 @@ static PyMemberDef code_memberlist[] = {
{"co_stacksize", Py_T_INT, OFF(co_stacksize), Py_READONLY},
{"co_flags", Py_T_INT, OFF(co_flags), Py_READONLY},
{"co_nlocals", Py_T_INT, OFF(co_nlocals), Py_READONLY},
{"co_consts", _Py_T_OBJECT, OFF(co_consts), Py_READONLY},
{"co_names", _Py_T_OBJECT, OFF(co_names), Py_READONLY},
{"co_filename", _Py_T_OBJECT, OFF(co_filename), Py_READONLY},
{"co_name", _Py_T_OBJECT, OFF(co_name), Py_READONLY},
{"co_qualname", _Py_T_OBJECT, OFF(co_qualname), Py_READONLY},
{"co_consts", Py_T_OBJECT_EX, OFF(co_consts), Py_READONLY},
{"co_names", Py_T_OBJECT_EX, OFF(co_names), Py_READONLY},
{"co_filename", Py_T_OBJECT_EX, OFF(co_filename), Py_READONLY},
{"co_name", Py_T_OBJECT_EX, OFF(co_name), Py_READONLY},
{"co_qualname", Py_T_OBJECT_EX, OFF(co_qualname), Py_READONLY},
{"co_firstlineno", Py_T_INT, OFF(co_firstlineno), Py_READONLY},
{"co_linetable", _Py_T_OBJECT, OFF(co_linetable), Py_READONLY},
{"co_exceptiontable", _Py_T_OBJECT, OFF(co_exceptiontable), Py_READONLY},
{"co_linetable", Py_T_OBJECT_EX, OFF(co_linetable), Py_READONLY},
{"co_exceptiontable", Py_T_OBJECT_EX, OFF(co_exceptiontable), Py_READONLY},
{NULL} /* Sentinel */
};

Expand Down
8 changes: 4 additions & 4 deletions Objects/descrobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,8 @@ static PyMethodDef descr_methods[] = {
};

static PyMemberDef descr_members[] = {
{"__objclass__", _Py_T_OBJECT, offsetof(PyDescrObject, d_type), Py_READONLY},
{"__name__", _Py_T_OBJECT, offsetof(PyDescrObject, d_name), Py_READONLY},
{"__objclass__", Py_T_OBJECT_EX, offsetof(PyDescrObject, d_type), Py_READONLY},
{"__name__", Py_T_OBJECT_EX, offsetof(PyDescrObject, d_name), Py_READONLY},
{0}
};

Expand Down Expand Up @@ -1355,7 +1355,7 @@ static PyMethodDef wrapper_methods[] = {
};

static PyMemberDef wrapper_members[] = {
{"__self__", _Py_T_OBJECT, offsetof(wrapperobject, self), Py_READONLY},
{"__self__", Py_T_OBJECT_EX, offsetof(wrapperobject, self), Py_READONLY},
{0}
};

Expand Down Expand Up @@ -1515,7 +1515,7 @@ static PyObject * property_copy(PyObject *, PyObject *, PyObject *,
PyObject *);

static PyMemberDef property_members[] = {
{"fget", _Py_T_OBJECT, offsetof(propertyobject, prop_get), Py_READONLY},
{"fget", Py_T_OBJECT_EX, offsetof(propertyobject, prop_get), Py_READONLY},
{"fset", _Py_T_OBJECT, offsetof(propertyobject, prop_set), Py_READONLY},
{"fdel", _Py_T_OBJECT, offsetof(propertyobject, prop_del), Py_READONLY},
{"__doc__", _Py_T_OBJECT, offsetof(propertyobject, prop_doc), 0},
Expand Down
Loading