Skip to content

Commit daa9756

Browse files
authored
bpo-39573: Use Py_TYPE() macro in Modules directory (GH-18393)
Replace direct access to PyObject.ob_type with Py_TYPE().
1 parent 58ac700 commit daa9756

26 files changed

+40
-40
lines changed

Modules/_collectionsmodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ deque_concat(dequeobject *deque, PyObject *other)
539539
if (rv == 0) {
540540
PyErr_Format(PyExc_TypeError,
541541
"can only concatenate deque (not \"%.200s\") to deque",
542-
other->ob_type->tp_name);
542+
Py_TYPE(other)->tp_name);
543543
}
544544
return NULL;
545545
}
@@ -2395,7 +2395,7 @@ tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)
23952395
"descriptor for index '%zd' for tuple subclasses "
23962396
"doesn't apply to '%s' object",
23972397
index,
2398-
obj->ob_type->tp_name);
2398+
Py_TYPE(obj)->tp_name);
23992399
return NULL;
24002400
}
24012401

Modules/_csv.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
236236
if (!PyUnicode_Check(src)) {
237237
PyErr_Format(PyExc_TypeError,
238238
"\"%s\" must be string, not %.200s", name,
239-
src->ob_type->tp_name);
239+
Py_TYPE(src)->tp_name);
240240
return -1;
241241
}
242242
len = PyUnicode_GetLength(src);
@@ -807,7 +807,7 @@ Reader_iternext(ReaderObj *self)
807807
"iterator should return strings, "
808808
"not %.200s "
809809
"(did you open the file in text mode?)",
810-
lineobj->ob_type->tp_name
810+
Py_TYPE(lineobj)->tp_name
811811
);
812812
Py_DECREF(lineobj);
813813
return NULL;
@@ -1168,7 +1168,7 @@ csv_writerow(WriterObj *self, PyObject *seq)
11681168
if (iter == NULL)
11691169
return PyErr_Format(_csvstate_global->error_obj,
11701170
"iterable expected, not %.200s",
1171-
seq->ob_type->tp_name);
1171+
Py_TYPE(seq)->tp_name);
11721172

11731173
/* Join all fields in internal buffer.
11741174
*/

Modules/_ctypes/cfield.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ static void
274274
PyCField_dealloc(PyObject *self)
275275
{
276276
PyCField_clear((CFieldObject *)self);
277-
self->ob_type->tp_free((PyObject *)self);
277+
Py_TYPE(self)->tp_free((PyObject *)self);
278278
}
279279

280280
static PyObject *
@@ -1175,7 +1175,7 @@ u_set(void *ptr, PyObject *value, Py_ssize_t size)
11751175
if (!PyUnicode_Check(value)) {
11761176
PyErr_Format(PyExc_TypeError,
11771177
"unicode string expected instead of %s instance",
1178-
value->ob_type->tp_name);
1178+
Py_TYPE(value)->tp_name);
11791179
return NULL;
11801180
} else
11811181
Py_INCREF(value);
@@ -1234,7 +1234,7 @@ U_set(void *ptr, PyObject *value, Py_ssize_t length)
12341234
if (!PyUnicode_Check(value)) {
12351235
PyErr_Format(PyExc_TypeError,
12361236
"unicode string expected instead of %s instance",
1237-
value->ob_type->tp_name);
1237+
Py_TYPE(value)->tp_name);
12381238
return NULL;
12391239
}
12401240

@@ -1289,7 +1289,7 @@ s_set(void *ptr, PyObject *value, Py_ssize_t length)
12891289
if(!PyBytes_Check(value)) {
12901290
PyErr_Format(PyExc_TypeError,
12911291
"expected bytes, %s found",
1292-
value->ob_type->tp_name);
1292+
Py_TYPE(value)->tp_name);
12931293
return NULL;
12941294
}
12951295

@@ -1334,7 +1334,7 @@ z_set(void *ptr, PyObject *value, Py_ssize_t size)
13341334
}
13351335
PyErr_Format(PyExc_TypeError,
13361336
"bytes or integer address expected instead of %s instance",
1337-
value->ob_type->tp_name);
1337+
Py_TYPE(value)->tp_name);
13381338
return NULL;
13391339
}
13401340

@@ -1373,7 +1373,7 @@ Z_set(void *ptr, PyObject *value, Py_ssize_t size)
13731373
if (!PyUnicode_Check(value)) {
13741374
PyErr_Format(PyExc_TypeError,
13751375
"unicode string or integer address expected instead of %s instance",
1376-
value->ob_type->tp_name);
1376+
Py_TYPE(value)->tp_name);
13771377
return NULL;
13781378
}
13791379

@@ -1416,7 +1416,7 @@ BSTR_set(void *ptr, PyObject *value, Py_ssize_t size)
14161416
} else if (!PyUnicode_Check(value)) {
14171417
PyErr_Format(PyExc_TypeError,
14181418
"unicode string expected instead of %s instance",
1419-
value->ob_type->tp_name);
1419+
Py_TYPE(value)->tp_name);
14201420
return NULL;
14211421
}
14221422

Modules/_ctypes/ctypes.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ typedef struct {
102102
} PyCFuncPtrObject;
103103

104104
extern PyTypeObject PyCStgDict_Type;
105-
#define PyCStgDict_CheckExact(v) ((v)->ob_type == &PyCStgDict_Type)
105+
#define PyCStgDict_CheckExact(v) (Py_TYPE(v) == &PyCStgDict_Type)
106106
#define PyCStgDict_Check(v) PyObject_TypeCheck(v, &PyCStgDict_Type)
107107

108108
extern int PyCStructUnionType_update_stgdict(PyObject *fields, PyObject *type, int isStruct);
@@ -314,7 +314,7 @@ struct tagPyCArgObject {
314314
};
315315

316316
extern PyTypeObject PyCArg_Type;
317-
#define PyCArg_CheckExact(v) ((v)->ob_type == &PyCArg_Type)
317+
#define PyCArg_CheckExact(v) (Py_TYPE(v) == &PyCArg_Type)
318318
extern PyCArgObject *PyCArgObject_new(void);
319319

320320
extern PyObject *

Modules/_ctypes/stgdict.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ PyType_stgdict(PyObject *obj)
190190
StgDictObject *
191191
PyObject_stgdict(PyObject *self)
192192
{
193-
PyTypeObject *type = self->ob_type;
193+
PyTypeObject *type = Py_TYPE(self);
194194
if (!type->tp_dict || !PyCStgDict_CheckExact(type->tp_dict))
195195
return NULL;
196196
return (StgDictObject *)type->tp_dict;

Modules/_cursesmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2924,7 +2924,7 @@ _curses_getwin(PyObject *module, PyObject *file)
29242924
if (!PyBytes_Check(data)) {
29252925
PyErr_Format(PyExc_TypeError,
29262926
"f.read() returned %.100s instead of bytes",
2927-
data->ob_type->tp_name);
2927+
Py_TYPE(data)->tp_name);
29282928
Py_DECREF(data);
29292929
goto error;
29302930
}

Modules/_datetimemodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1810,7 +1810,7 @@ checked_divmod(PyObject *a, PyObject *b)
18101810
if (!PyTuple_Check(result)) {
18111811
PyErr_Format(PyExc_TypeError,
18121812
"divmod() returned non-tuple (type %.200s)",
1813-
result->ob_type->tp_name);
1813+
Py_TYPE(result)->tp_name);
18141814
Py_DECREF(result);
18151815
return NULL;
18161816
}

Modules/_dbmmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ dbm_contains(PyObject *self, PyObject *arg)
255255
else if (!PyBytes_Check(arg)) {
256256
PyErr_Format(PyExc_TypeError,
257257
"dbm key must be bytes or string, not %.100s",
258-
arg->ob_type->tp_name);
258+
Py_TYPE(arg)->tp_name);
259259
return -1;
260260
}
261261
else {

Modules/_decimal/_decimal.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2584,7 +2584,7 @@ PyDecType_FromObjectExact(PyTypeObject *type, PyObject *v, PyObject *context)
25842584
else {
25852585
PyErr_Format(PyExc_TypeError,
25862586
"conversion from %s to Decimal is not supported",
2587-
v->ob_type->tp_name);
2587+
Py_TYPE(v)->tp_name);
25882588
return NULL;
25892589
}
25902590
}
@@ -2633,7 +2633,7 @@ PyDec_FromObject(PyObject *v, PyObject *context)
26332633
else {
26342634
PyErr_Format(PyExc_TypeError,
26352635
"conversion from %s to Decimal is not supported",
2636-
v->ob_type->tp_name);
2636+
Py_TYPE(v)->tp_name);
26372637
return NULL;
26382638
}
26392639
}
@@ -2696,7 +2696,7 @@ convert_op(int type_err, PyObject **conv, PyObject *v, PyObject *context)
26962696
if (type_err) {
26972697
PyErr_Format(PyExc_TypeError,
26982698
"conversion from %s to Decimal is not supported",
2699-
v->ob_type->tp_name);
2699+
Py_TYPE(v)->tp_name);
27002700
}
27012701
else {
27022702
Py_INCREF(Py_NotImplemented);

Modules/_gdbmmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ dbm_contains(PyObject *self, PyObject *arg)
349349
else if (!PyBytes_Check(arg)) {
350350
PyErr_Format(PyExc_TypeError,
351351
"gdbm key must be bytes or string, not %.100s",
352-
arg->ob_type->tp_name);
352+
Py_TYPE(arg)->tp_name);
353353
return -1;
354354
}
355355
else {

0 commit comments

Comments
 (0)