bpo-39573: Use the Py_TYPE() macro (GH-21433)

Replace obj->ob_type with Py_TYPE(obj).
This commit is contained in:
Victor Stinner 2020-07-10 12:40:38 +02:00 committed by GitHub
parent d878349bac
commit 8182cc2e68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 12 additions and 12 deletions

View File

@ -2040,7 +2040,7 @@ element_attrib_setter(ElementObject *self, PyObject *value, void *closure)
if (!PyDict_Check(value)) { if (!PyDict_Check(value)) {
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"attrib must be dict, not %.200s", "attrib must be dict, not %.200s",
value->ob_type->tp_name); Py_TYPE(value)->tp_name);
return -1; return -1;
} }
if (!self->extra) { if (!self->extra) {

View File

@ -1382,7 +1382,7 @@ PyNumber_Long(PyObject *o)
if (!PyLong_Check(result)) { if (!PyLong_Check(result)) {
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"__int__ returned non-int (type %.200s)", "__int__ returned non-int (type %.200s)",
result->ob_type->tp_name); Py_TYPE(result)->tp_name);
Py_DECREF(result); Py_DECREF(result);
return NULL; return NULL;
} }
@ -1391,7 +1391,7 @@ PyNumber_Long(PyObject *o)
"__int__ returned non-int (type %.200s). " "__int__ returned non-int (type %.200s). "
"The ability to return an instance of a strict subclass of int " "The ability to return an instance of a strict subclass of int "
"is deprecated, and may be removed in a future version of Python.", "is deprecated, and may be removed in a future version of Python.",
result->ob_type->tp_name)) { Py_TYPE(result)->tp_name)) {
Py_DECREF(result); Py_DECREF(result);
return NULL; return NULL;
} }

View File

@ -20,7 +20,7 @@ ga_dealloc(PyObject *self)
Py_XDECREF(alias->origin); Py_XDECREF(alias->origin);
Py_XDECREF(alias->args); Py_XDECREF(alias->args);
Py_XDECREF(alias->parameters); Py_XDECREF(alias->parameters);
self->ob_type->tp_free(self); Py_TYPE(self)->tp_free(self);
} }
static int static int

View File

@ -3325,7 +3325,7 @@ _PyUnicode_WideCharString_Converter(PyObject *obj, void *ptr)
} }
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"argument must be str, not %.50s", "argument must be str, not %.50s",
obj->ob_type->tp_name); Py_TYPE(obj)->tp_name);
return 0; return 0;
} }
@ -3361,7 +3361,7 @@ _PyUnicode_WideCharString_Opt_Converter(PyObject *obj, void *ptr)
} }
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"argument must be str or None, not %.50s", "argument must be str or None, not %.50s",
obj->ob_type->tp_name); Py_TYPE(obj)->tp_name);
return 0; return 0;
} }

View File

@ -193,7 +193,7 @@ static FNFCIGETNEXTCABINET(cb_getnextcabinet)
if (!PyBytes_Check(result)) { if (!PyBytes_Check(result)) {
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"Incorrect return type %s from getnextcabinet", "Incorrect return type %s from getnextcabinet",
result->ob_type->tp_name); Py_TYPE(result)->tp_name);
Py_DECREF(result); Py_DECREF(result);
return FALSE; return FALSE;
} }
@ -879,7 +879,7 @@ _msi_View_Execute(msiobj *self, PyObject *oparams)
MSIHANDLE params = 0; MSIHANDLE params = 0;
if (oparams != Py_None) { if (oparams != Py_None) {
if (oparams->ob_type != &record_Type) { if (!Py_IS_TYPE(oparams, &record_Type)) {
PyErr_SetString(PyExc_TypeError, "Execute argument must be a record"); PyErr_SetString(PyExc_TypeError, "Execute argument must be a record");
return NULL; return NULL;
} }
@ -955,7 +955,7 @@ _msi_View_Modify_impl(msiobj *self, int kind, PyObject *data)
{ {
int status; int status;
if (data->ob_type != &record_Type) { if (!Py_IS_TYPE(data, &record_Type)) {
PyErr_SetString(PyExc_TypeError, "Modify expects a record object"); PyErr_SetString(PyExc_TypeError, "Modify expects a record object");
return NULL; return NULL;
} }

View File

@ -112,7 +112,7 @@ typedef struct {
HKEY hkey; HKEY hkey;
} PyHKEYObject; } PyHKEYObject;
#define PyHKEY_Check(op) ((op)->ob_type == &PyHKEY_Type) #define PyHKEY_Check(op) Py_IS_TYPE(op, &PyHKEY_Type)
static char *failMsg = "bad operand type"; static char *failMsg = "bad operand type";
@ -693,7 +693,7 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"Objects of type '%s' can not " "Objects of type '%s' can not "
"be used as binary registry values", "be used as binary registry values",
value->ob_type->tp_name); Py_TYPE(value)->tp_name);
return FALSE; return FALSE;
} }

View File

@ -33,7 +33,7 @@ or
if the refcount changed. if the refcount changed.
typename is object->ob_type->tp_name, extracted from the second PYTHONDUMPREFS typename is Py_TYPE(object)->tp_name, extracted from the second PYTHONDUMPREFS
output block. output block.
repr is repr(object), extracted from the first PYTHONDUMPREFS output block. repr is repr(object), extracted from the first PYTHONDUMPREFS output block.