]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39573: Update clinic to use Py_IS_TYPE() function (GH-18507)
authorDong-hee Na <donghee.na92@gmail.com>
Fri, 14 Feb 2020 07:50:19 +0000 (16:50 +0900)
committerGitHub <noreply@github.com>
Fri, 14 Feb 2020 07:50:19 +0000 (08:50 +0100)
Misc/NEWS.d/next/Core and Builtins/2020-02-14-10-08-53.bpo-39573.BIIX2M.rst [new file with mode: 0644]
Modules/_io/clinic/bufferedio.c.h
Modules/clinic/_bz2module.c.h
Objects/clinic/listobject.c.h
Tools/clinic/clinic.py

diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-02-14-10-08-53.bpo-39573.BIIX2M.rst b/Misc/NEWS.d/next/Core and Builtins/2020-02-14-10-08-53.bpo-39573.BIIX2M.rst
new file mode 100644 (file)
index 0000000..23396d3
--- /dev/null
@@ -0,0 +1 @@
+Update clinic tool to use :c:func:`Py_IS_TYPE`. Patch by Dong-hee Na.
index 72841fcb6779c7f872c643926ff068022da7f5ef..56d6332a25058bae1d4e6e884cbf1fd78c347441 100644 (file)
@@ -578,7 +578,7 @@ _io_BufferedRWPair___init__(PyObject *self, PyObject *args, PyObject *kwargs)
     PyObject *writer;
     Py_ssize_t buffer_size = DEFAULT_BUFFER_SIZE;
 
-    if ((Py_TYPE(self) == &PyBufferedRWPair_Type) &&
+    if (Py_IS_TYPE(self, &PyBufferedRWPair_Type) &&
         !_PyArg_NoKeywords("BufferedRWPair", kwargs)) {
         goto exit;
     }
@@ -672,4 +672,4 @@ skip_optional_pos:
 exit:
     return return_value;
 }
-/*[clinic end generated code: output=7246104f6c7d3167 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7d9ad40c95bdd808 input=a9049054013a1b77]*/
index ac826bd9b5986fe894eb8c2ab4ea9ec14295e647..0eb6280d6e0298e5766b063aa7fa30d8cf63ad52 100644 (file)
@@ -85,7 +85,7 @@ _bz2_BZ2Compressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
     int return_value = -1;
     int compresslevel = 9;
 
-    if ((Py_TYPE(self) == &BZ2Compressor_Type) &&
+    if (Py_IS_TYPE(self, &BZ2Compressor_Type) &&
         !_PyArg_NoKeywords("BZ2Compressor", kwargs)) {
         goto exit;
     }
@@ -207,11 +207,11 @@ _bz2_BZ2Decompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
 {
     int return_value = -1;
 
-    if ((Py_TYPE(self) == &BZ2Decompressor_Type) &&
+    if (Py_IS_TYPE(self, &BZ2Decompressor_Type) &&
         !_PyArg_NoPositional("BZ2Decompressor", args)) {
         goto exit;
     }
-    if ((Py_TYPE(self) == &BZ2Decompressor_Type) &&
+    if (Py_IS_TYPE(self, &BZ2Decompressor_Type) &&
         !_PyArg_NoKeywords("BZ2Decompressor", kwargs)) {
         goto exit;
     }
@@ -220,4 +220,4 @@ _bz2_BZ2Decompressor___init__(PyObject *self, PyObject *args, PyObject *kwargs)
 exit:
     return return_value;
 }
-/*[clinic end generated code: output=ec3d1b3652c98823 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3f3f1e788fe28ee1 input=a9049054013a1b77]*/
index 57f0a48eb0838b18ada5dc60a8e15a05676c265d..ed137c95a8e109e5fae9d33c2ae01d451c9dd577 100644 (file)
@@ -314,7 +314,7 @@ list___init__(PyObject *self, PyObject *args, PyObject *kwargs)
     int return_value = -1;
     PyObject *iterable = NULL;
 
-    if ((Py_TYPE(self) == &PyList_Type) &&
+    if (Py_IS_TYPE(self, &PyList_Type) &&
         !_PyArg_NoKeywords("list", kwargs)) {
         goto exit;
     }
@@ -367,4 +367,4 @@ list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored))
 {
     return list___reversed___impl(self);
 }
-/*[clinic end generated code: output=73718c0c33798c62 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1ff61490c091d165 input=a9049054013a1b77]*/
index b503932e2624bbacbef5b21e75111ec5d6a78849..382e29a28ab48e817f19f4d942540191a1167ff1 100755 (executable)
@@ -3585,17 +3585,14 @@ class self_converter(CConverter):
         cls = self.function.cls
 
         if ((kind in (METHOD_NEW, METHOD_INIT)) and cls and cls.typedef):
+            type_object = self.function.cls.type_object
             if kind == METHOD_NEW:
-                passed_in_type = self.name
+                type_check = '({} == {})'.format(self.name, type_object)
             else:
-                passed_in_type = 'Py_TYPE({})'.format(self.name)
-
-            line = '({passed_in_type} == {type_object}) &&\n        '
-            d = {
-                'type_object': self.function.cls.type_object,
-                'passed_in_type': passed_in_type
-                }
-            template_dict['self_type_check'] = line.format_map(d)
+                type_check = 'Py_IS_TYPE({}, {})'.format(self.name, type_object)
+
+            line = '{} &&\n        '.format(type_check)
+            template_dict['self_type_check'] = line