1+ // Thin wrappers to PyType functions.
2+ // Do no check PyType_Check() so Python tests can pass arbitrary objects,
3+ // even if it's likely to crash.
4+
15// Need limited C API version 3.14 for PyType_Freeze()
26#include "pyconfig.h" // Py_GIL_DISABLED
37#if !defined(Py_GIL_DISABLED ) && !defined(Py_LIMITED_API )
@@ -28,28 +32,11 @@ get_heaptype_for_name(PyObject *self, PyObject *Py_UNUSED(ignored))
2832}
2933
3034
31- static int
32- check_type_arg (PyObject * arg )
33- {
34- if (arg == NULL ) {
35- return 0 ;
36- }
37- if (!PyType_Check (arg )) {
38- PyErr_SetString (PyExc_TypeError , "argument must be a type" );
39- return -1 ;
40- }
41- return 0 ;
42- }
43-
44-
4535// Test PyType_GetName()
4636static PyObject *
4737get_type_name (PyObject * self , PyObject * arg )
4838{
4939 NULLABLE (arg );
50- if (check_type_arg (arg ) < 0 ) {
51- return NULL ;
52- }
5340 PyTypeObject * type = (PyTypeObject * )arg ;
5441
5542 return PyType_GetName (type );
@@ -61,9 +48,6 @@ static PyObject*
6148get_type_qualname (PyObject * self , PyObject * arg )
6249{
6350 NULLABLE (arg );
64- if (check_type_arg (arg ) < 0 ) {
65- return NULL ;
66- }
6751 PyTypeObject * type = (PyTypeObject * )arg ;
6852
6953 return PyType_GetQualName (type );
@@ -75,9 +59,6 @@ static PyObject*
7559get_type_fullyqualname (PyObject * self , PyObject * arg )
7660{
7761 NULLABLE (arg );
78- if (check_type_arg (arg ) < 0 ) {
79- return NULL ;
80- }
8162 PyTypeObject * type = (PyTypeObject * )arg ;
8263
8364 return PyType_GetFullyQualifiedName (type );
@@ -89,9 +70,6 @@ static PyObject*
8970get_type_module_name (PyObject * self , PyObject * arg )
9071{
9172 NULLABLE (arg );
92- if (check_type_arg (arg ) < 0 ) {
93- return NULL ;
94- }
9573 PyTypeObject * type = (PyTypeObject * )arg ;
9674
9775 return PyType_GetModuleName (type );
@@ -103,9 +81,6 @@ static PyObject*
10381type_modified (PyObject * self , PyObject * arg )
10482{
10583 NULLABLE (arg );
106- if (check_type_arg (arg ) < 0 ) {
107- return NULL ;
108- }
10984 PyTypeObject * type = (PyTypeObject * )arg ;
11085
11186 PyType_Modified (type );
@@ -118,11 +93,7 @@ static PyObject*
11893type_ready (PyObject * self , PyObject * arg )
11994{
12095 assert (!PyErr_Occurred ());
121-
12296 NULLABLE (arg );
123- if (check_type_arg (arg ) < 0 ) {
124- return NULL ;
125- }
12697 PyTypeObject * type = (PyTypeObject * )arg ;
12798
12899 if (PyType_Ready (type ) < 0 ) {
@@ -139,9 +110,6 @@ static PyObject *
139110type_freeze (PyObject * module , PyObject * arg )
140111{
141112 NULLABLE (arg );
142- if (check_type_arg (arg ) < 0 ) {
143- return NULL ;
144- }
145113 PyTypeObject * type = (PyTypeObject * )arg ;
146114
147115 if (PyType_Freeze (type ) < 0 ) {
@@ -168,9 +136,6 @@ static PyObject *
168136type_getflags (PyObject * module , PyObject * arg )
169137{
170138 NULLABLE (arg );
171- if (check_type_arg (arg ) < 0 ) {
172- return NULL ;
173- }
174139 PyTypeObject * type = (PyTypeObject * )arg ;
175140
176141 unsigned long flags = PyType_GetFlags (type );
0 commit comments