bpo-39573: Finish converting to new Py_IS_TYPE() macro (GH-18601)
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 5674330..d394002 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -572,7 +572,7 @@
PyErr_SetString(PyExc_TypeError, "invalid exception object");
return NULL;
}
- if ((PyObject*)Py_TYPE(exc_val) == PyExc_StopIteration) {
+ if (Py_IS_TYPE(exc_val, (PyTypeObject *)PyExc_StopIteration)) {
Py_DECREF(exc_val);
PyErr_SetString(PyExc_TypeError,
"StopIteration interacts badly with generators "
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
index 057d404..4d5d874 100644
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -489,7 +489,7 @@
{
PyObject *result;
dequeobject *old_deque = (dequeobject *)deque;
- if (Py_TYPE(deque) == &deque_type) {
+ if (Py_IS_TYPE(deque, &deque_type)) {
dequeobject *new_deque;
PyObject *rv;
diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
index c0f771f..cc06824 100644
--- a/Modules/_elementtree.c
+++ b/Modules/_elementtree.c
@@ -2366,7 +2366,7 @@
char insert_pis;
} TreeBuilderObject;
-#define TreeBuilder_CheckExact(op) (Py_TYPE(op) == &TreeBuilder_Type)
+#define TreeBuilder_CheckExact(op) Py_IS_TYPE((op), &TreeBuilder_Type)
/* -------------------------------------------------------------------- */
/* constructor and destructor */
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index a09082c..f2d0467 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -1449,8 +1449,8 @@
return -1;
_bufferedreader_reset_buf(self);
- self->fast_closed_checks = (Py_TYPE(self) == &PyBufferedReader_Type &&
- Py_TYPE(raw) == &PyFileIO_Type);
+ self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedReader_Type) &&
+ Py_IS_TYPE(raw, &PyFileIO_Type));
self->ok = 1;
return 0;
@@ -1795,8 +1795,8 @@
_bufferedwriter_reset_buf(self);
self->pos = 0;
- self->fast_closed_checks = (Py_TYPE(self) == &PyBufferedWriter_Type &&
- Py_TYPE(raw) == &PyFileIO_Type);
+ self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedWriter_Type) &&
+ Py_IS_TYPE(raw, &PyFileIO_Type));
self->ok = 1;
return 0;
@@ -2309,8 +2309,8 @@
_bufferedwriter_reset_buf(self);
self->pos = 0;
- self->fast_closed_checks = (Py_TYPE(self) == &PyBufferedRandom_Type &&
- Py_TYPE(raw) == &PyFileIO_Type);
+ self->fast_closed_checks = (Py_IS_TYPE(self, &PyBufferedRandom_Type) &&
+ Py_IS_TYPE(raw, &PyFileIO_Type));
self->ok = 1;
return 0;
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c
index 28d54e0..9feb76e 100644
--- a/Modules/_io/stringio.c
+++ b/Modules/_io/stringio.c
@@ -402,7 +402,7 @@
CHECK_CLOSED(self);
ENSURE_REALIZED(self);
- if (Py_TYPE(self) == &PyStringIO_Type) {
+ if (Py_IS_TYPE(self, &PyStringIO_Type)) {
/* Skip method call overhead for speed */
line = _stringio_readline(self, -1);
}
diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c
index 3a9ce93..dedbefe 100644
--- a/Modules/_io/textio.c
+++ b/Modules/_io/textio.c
@@ -897,7 +897,7 @@
{
PyObject *chars;
- if (Py_TYPE(decoder) == &PyIncrementalNewlineDecoder_Type)
+ if (Py_IS_TYPE(decoder, &PyIncrementalNewlineDecoder_Type))
chars = _PyIncrementalNewlineDecoder_decode(decoder, bytes, eof);
else
chars = PyObject_CallMethodObjArgs(decoder, _PyIO_str_decode, bytes,
@@ -1226,15 +1226,15 @@
/* Finished sorting out the codec details */
Py_CLEAR(codec_info);
- if (Py_TYPE(buffer) == &PyBufferedReader_Type ||
- Py_TYPE(buffer) == &PyBufferedWriter_Type ||
- Py_TYPE(buffer) == &PyBufferedRandom_Type)
+ if (Py_IS_TYPE(buffer, &PyBufferedReader_Type) ||
+ Py_IS_TYPE(buffer, &PyBufferedWriter_Type) ||
+ Py_IS_TYPE(buffer, &PyBufferedRandom_Type))
{
if (_PyObject_LookupAttrId(buffer, &PyId_raw, &raw) < 0)
goto error;
/* Cache the raw FileIO object to speed up 'closed' checks */
if (raw != NULL) {
- if (Py_TYPE(raw) == &PyFileIO_Type)
+ if (Py_IS_TYPE(raw, &PyFileIO_Type))
self->raw = raw;
else
Py_DECREF(raw);
@@ -1466,7 +1466,7 @@
do { \
int r; \
PyObject *_res; \
- if (Py_TYPE(self) == &PyTextIOWrapper_Type) { \
+ if (Py_IS_TYPE(self, &PyTextIOWrapper_Type)) { \
if (self->raw != NULL) \
r = _PyFileIO_closed(self->raw); \
else { \
@@ -1937,7 +1937,7 @@
if (bytes == NULL)
goto fail;
- if (Py_TYPE(self->decoder) == &PyIncrementalNewlineDecoder_Type)
+ if (Py_IS_TYPE(self->decoder, &PyIncrementalNewlineDecoder_Type))
decoded = _PyIncrementalNewlineDecoder_decode(self->decoder,
bytes, 1);
else
@@ -3079,7 +3079,7 @@
CHECK_ATTACHED(self);
self->telling = 0;
- if (Py_TYPE(self) == &PyTextIOWrapper_Type) {
+ if (Py_IS_TYPE(self, &PyTextIOWrapper_Type)) {
/* Skip method call overhead for speed */
line = _textiowrapper_readline(self, -1);
}
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index bcbd3c0..6b903da 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -4974,7 +4974,7 @@
return -1;
}
- if (Py_TYPE(obj) == &PicklerMemoProxyType) {
+ if (Py_IS_TYPE(obj, &PicklerMemoProxyType)) {
PicklerObject *pickler =
((PicklerMemoProxyObject *)obj)->pickler;
@@ -7519,7 +7519,7 @@
return -1;
}
- if (Py_TYPE(obj) == &UnpicklerMemoProxyType) {
+ if (Py_IS_TYPE(obj, &UnpicklerMemoProxyType)) {
UnpicklerObject *unpickler =
((UnpicklerMemoProxyObject *)obj)->unpickler;
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c
index 4a651ce..da5fe79 100644
--- a/Modules/_threadmodule.c
+++ b/Modules/_threadmodule.c
@@ -844,7 +844,7 @@
}
}
else {
- assert(Py_TYPE(dummy) == &localdummytype);
+ assert(Py_IS_TYPE(dummy, &localdummytype));
ldict = ((localdummyobject *) dummy)->localdict;
}
@@ -1209,7 +1209,7 @@
PyObject *obj = PyWeakref_GET_OBJECT(wr);
lockobject *lock;
if (obj != Py_None) {
- assert(Py_TYPE(obj) == &Locktype);
+ assert(Py_IS_TYPE(obj, &Locktype));
lock = (lockobject *) obj;
if (lock->locked) {
PyThread_release_lock(lock->lock_lock);
diff --git a/Modules/cjkcodecs/multibytecodec.h b/Modules/cjkcodecs/multibytecodec.h
index 94670ec..4d2b355 100644
--- a/Modules/cjkcodecs/multibytecodec.h
+++ b/Modules/cjkcodecs/multibytecodec.h
@@ -65,7 +65,7 @@
MultibyteCodec *codec;
} MultibyteCodecObject;
-#define MultibyteCodec_Check(op) (Py_TYPE(op) == &MultibyteCodec_Type)
+#define MultibyteCodec_Check(op) Py_IS_TYPE((op), &MultibyteCodec_Type)
#define _MultibyteStatefulCodec_HEAD \
PyObject_HEAD \
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index c00c274..d545028 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -527,7 +527,7 @@
static void
teedataobject_safe_decref(PyObject *obj)
{
- while (obj && Py_TYPE(obj) == &teedataobject_type &&
+ while (obj && Py_IS_TYPE(obj, &teedataobject_type) &&
Py_REFCNT(obj) == 1) {
PyObject *nextlink = ((teedataobject *)obj)->nextlink;
((teedataobject *)obj)->nextlink = NULL;