mirror of
https://github.com/python/cpython.git
synced 2025-10-07 23:51:16 +00:00
bpo-39573: Add Py_SET_TYPE() function (GH-18394)
Add Py_SET_TYPE() function to set the type of an object.
This commit is contained in:
parent
daa9756cb6
commit
d2ec81a8c9
24 changed files with 77 additions and 48 deletions
|
@ -62,7 +62,7 @@ PyInit__blake2(void)
|
|||
return NULL;
|
||||
|
||||
/* BLAKE2b */
|
||||
Py_TYPE(&PyBlake2_BLAKE2bType) = &PyType_Type;
|
||||
Py_SET_TYPE(&PyBlake2_BLAKE2bType, &PyType_Type);
|
||||
if (PyType_Ready(&PyBlake2_BLAKE2bType) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ PyInit__blake2(void)
|
|||
PyModule_AddIntConstant(m, "BLAKE2B_MAX_DIGEST_SIZE", BLAKE2B_OUTBYTES);
|
||||
|
||||
/* BLAKE2s */
|
||||
Py_TYPE(&PyBlake2_BLAKE2sType) = &PyType_Type;
|
||||
Py_SET_TYPE(&PyBlake2_BLAKE2sType, &PyType_Type);
|
||||
if (PyType_Ready(&PyBlake2_BLAKE2sType) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -5758,42 +5758,42 @@ PyInit__ctypes(void)
|
|||
if (PyType_Ready(&PyCData_Type) < 0)
|
||||
return NULL;
|
||||
|
||||
Py_TYPE(&Struct_Type) = &PyCStructType_Type;
|
||||
Py_SET_TYPE(&Struct_Type, &PyCStructType_Type);
|
||||
Struct_Type.tp_base = &PyCData_Type;
|
||||
if (PyType_Ready(&Struct_Type) < 0)
|
||||
return NULL;
|
||||
Py_INCREF(&Struct_Type);
|
||||
PyModule_AddObject(m, "Structure", (PyObject *)&Struct_Type);
|
||||
|
||||
Py_TYPE(&Union_Type) = &UnionType_Type;
|
||||
Py_SET_TYPE(&Union_Type, &UnionType_Type);
|
||||
Union_Type.tp_base = &PyCData_Type;
|
||||
if (PyType_Ready(&Union_Type) < 0)
|
||||
return NULL;
|
||||
Py_INCREF(&Union_Type);
|
||||
PyModule_AddObject(m, "Union", (PyObject *)&Union_Type);
|
||||
|
||||
Py_TYPE(&PyCPointer_Type) = &PyCPointerType_Type;
|
||||
Py_SET_TYPE(&PyCPointer_Type, &PyCPointerType_Type);
|
||||
PyCPointer_Type.tp_base = &PyCData_Type;
|
||||
if (PyType_Ready(&PyCPointer_Type) < 0)
|
||||
return NULL;
|
||||
Py_INCREF(&PyCPointer_Type);
|
||||
PyModule_AddObject(m, "_Pointer", (PyObject *)&PyCPointer_Type);
|
||||
|
||||
Py_TYPE(&PyCArray_Type) = &PyCArrayType_Type;
|
||||
Py_SET_TYPE(&PyCArray_Type, &PyCArrayType_Type);
|
||||
PyCArray_Type.tp_base = &PyCData_Type;
|
||||
if (PyType_Ready(&PyCArray_Type) < 0)
|
||||
return NULL;
|
||||
Py_INCREF(&PyCArray_Type);
|
||||
PyModule_AddObject(m, "Array", (PyObject *)&PyCArray_Type);
|
||||
|
||||
Py_TYPE(&Simple_Type) = &PyCSimpleType_Type;
|
||||
Py_SET_TYPE(&Simple_Type, &PyCSimpleType_Type);
|
||||
Simple_Type.tp_base = &PyCData_Type;
|
||||
if (PyType_Ready(&Simple_Type) < 0)
|
||||
return NULL;
|
||||
Py_INCREF(&Simple_Type);
|
||||
PyModule_AddObject(m, "_SimpleCData", (PyObject *)&Simple_Type);
|
||||
|
||||
Py_TYPE(&PyCFuncPtr_Type) = &PyCFuncPtrType_Type;
|
||||
Py_SET_TYPE(&PyCFuncPtr_Type, &PyCFuncPtrType_Type);
|
||||
PyCFuncPtr_Type.tp_base = &PyCData_Type;
|
||||
if (PyType_Ready(&PyCFuncPtr_Type) < 0)
|
||||
return NULL;
|
||||
|
|
|
@ -68,7 +68,7 @@ typedef struct {
|
|||
ffi_type *atypes[1];
|
||||
} CThunkObject;
|
||||
extern PyTypeObject PyCThunk_Type;
|
||||
#define CThunk_CheckExact(v) ((v)->ob_type == &PyCThunk_Type)
|
||||
#define CThunk_CheckExact(v) (Py_TYPE(v) == &PyCThunk_Type)
|
||||
|
||||
typedef struct {
|
||||
/* First part identical to tagCDataObject */
|
||||
|
|
|
@ -713,7 +713,7 @@ PyInit__sha3(void)
|
|||
|
||||
#define init_sha3type(name, type) \
|
||||
do { \
|
||||
Py_TYPE(type) = &PyType_Type; \
|
||||
Py_SET_TYPE(type, &PyType_Type); \
|
||||
if (PyType_Ready(type) < 0) { \
|
||||
goto error; \
|
||||
} \
|
||||
|
|
|
@ -78,6 +78,6 @@ PyTypeObject pysqlite_PrepareProtocolType= {
|
|||
extern int pysqlite_prepare_protocol_setup_types(void)
|
||||
{
|
||||
pysqlite_PrepareProtocolType.tp_new = PyType_GenericNew;
|
||||
Py_TYPE(&pysqlite_PrepareProtocolType)= &PyType_Type;
|
||||
Py_SET_TYPE(&pysqlite_PrepareProtocolType, &PyType_Type);
|
||||
return PyType_Ready(&pysqlite_PrepareProtocolType);
|
||||
}
|
||||
|
|
|
@ -2835,11 +2835,11 @@ PyInit__testbuffer(void)
|
|||
if (m == NULL)
|
||||
return NULL;
|
||||
|
||||
Py_TYPE(&NDArray_Type) = &PyType_Type;
|
||||
Py_SET_TYPE(&NDArray_Type, &PyType_Type);
|
||||
Py_INCREF(&NDArray_Type);
|
||||
PyModule_AddObject(m, "ndarray", (PyObject *)&NDArray_Type);
|
||||
|
||||
Py_TYPE(&StaticArray_Type) = &PyType_Type;
|
||||
Py_SET_TYPE(&StaticArray_Type, &PyType_Type);
|
||||
Py_INCREF(&StaticArray_Type);
|
||||
PyModule_AddObject(m, "staticarray", (PyObject *)&StaticArray_Type);
|
||||
|
||||
|
|
|
@ -6605,9 +6605,9 @@ PyInit__testcapi(void)
|
|||
if (m == NULL)
|
||||
return NULL;
|
||||
|
||||
Py_TYPE(&_HashInheritanceTester_Type)=&PyType_Type;
|
||||
Py_SET_TYPE(&_HashInheritanceTester_Type, &PyType_Type);
|
||||
|
||||
Py_TYPE(&test_structmembersType)=&PyType_Type;
|
||||
Py_SET_TYPE(&test_structmembersType, &PyType_Type);
|
||||
Py_INCREF(&test_structmembersType);
|
||||
/* don't use a name starting with "test", since we don't want
|
||||
test_capi to automatically call this */
|
||||
|
|
|
@ -2996,7 +2996,7 @@ array_modexec(PyObject *m)
|
|||
|
||||
if (PyType_Ready(&Arraytype) < 0)
|
||||
return -1;
|
||||
Py_TYPE(&PyArrayIter_Type) = &PyType_Type;
|
||||
Py_SET_TYPE(&PyArrayIter_Type, &PyType_Type);
|
||||
|
||||
Py_INCREF((PyObject *)&Arraytype);
|
||||
if (PyModule_AddObject(m, "ArrayType", (PyObject *)&Arraytype) < 0) {
|
||||
|
|
|
@ -4750,14 +4750,16 @@ PyInit_itertools(void)
|
|||
NULL
|
||||
};
|
||||
|
||||
Py_TYPE(&teedataobject_type) = &PyType_Type;
|
||||
Py_SET_TYPE(&teedataobject_type, &PyType_Type);
|
||||
m = PyModule_Create(&itertoolsmodule);
|
||||
if (m == NULL)
|
||||
if (m == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i=0 ; typelist[i] != NULL ; i++) {
|
||||
if (PyType_Ready(typelist[i]) < 0)
|
||||
if (PyType_Ready(typelist[i]) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
name = _PyType_Name(typelist[i]);
|
||||
Py_INCREF(typelist[i]);
|
||||
PyModule_AddObject(m, name, (PyObject *)typelist[i]);
|
||||
|
|
|
@ -572,13 +572,15 @@ PyInit__md5(void)
|
|||
{
|
||||
PyObject *m;
|
||||
|
||||
Py_TYPE(&MD5type) = &PyType_Type;
|
||||
if (PyType_Ready(&MD5type) < 0)
|
||||
Py_SET_TYPE(&MD5type, &PyType_Type);
|
||||
if (PyType_Ready(&MD5type) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
m = PyModule_Create(&_md5module);
|
||||
if (m == NULL)
|
||||
if (m == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_INCREF((PyObject *)&MD5type);
|
||||
PyModule_AddObject(m, "MD5Type", (PyObject *)&MD5type);
|
||||
|
|
|
@ -549,13 +549,15 @@ PyInit__sha1(void)
|
|||
{
|
||||
PyObject *m;
|
||||
|
||||
Py_TYPE(&SHA1type) = &PyType_Type;
|
||||
if (PyType_Ready(&SHA1type) < 0)
|
||||
Py_SET_TYPE(&SHA1type, &PyType_Type);
|
||||
if (PyType_Ready(&SHA1type) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
m = PyModule_Create(&_sha1module);
|
||||
if (m == NULL)
|
||||
if (m == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_INCREF((PyObject *)&SHA1type);
|
||||
PyModule_AddObject(m, "SHA1Type", (PyObject *)&SHA1type);
|
||||
|
|
|
@ -713,12 +713,14 @@ PyInit__sha256(void)
|
|||
{
|
||||
PyObject *m;
|
||||
|
||||
Py_TYPE(&SHA224type) = &PyType_Type;
|
||||
if (PyType_Ready(&SHA224type) < 0)
|
||||
Py_SET_TYPE(&SHA224type, &PyType_Type);
|
||||
if (PyType_Ready(&SHA224type) < 0) {
|
||||
return NULL;
|
||||
Py_TYPE(&SHA256type) = &PyType_Type;
|
||||
if (PyType_Ready(&SHA256type) < 0)
|
||||
}
|
||||
Py_SET_TYPE(&SHA256type, &PyType_Type);
|
||||
if (PyType_Ready(&SHA256type) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
m = PyModule_Create(&_sha256module);
|
||||
if (m == NULL)
|
||||
|
|
|
@ -778,16 +778,19 @@ PyInit__sha512(void)
|
|||
{
|
||||
PyObject *m;
|
||||
|
||||
Py_TYPE(&SHA384type) = &PyType_Type;
|
||||
if (PyType_Ready(&SHA384type) < 0)
|
||||
Py_SET_TYPE(&SHA384type, &PyType_Type);
|
||||
if (PyType_Ready(&SHA384type) < 0) {
|
||||
return NULL;
|
||||
Py_TYPE(&SHA512type) = &PyType_Type;
|
||||
if (PyType_Ready(&SHA512type) < 0)
|
||||
}
|
||||
Py_SET_TYPE(&SHA512type, &PyType_Type);
|
||||
if (PyType_Ready(&SHA512type) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
m = PyModule_Create(&_sha512module);
|
||||
if (m == NULL)
|
||||
if (m == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_INCREF((PyObject *)&SHA384type);
|
||||
PyModule_AddObject(m, "SHA384Type", (PyObject *)&SHA384type);
|
||||
|
|
|
@ -7100,7 +7100,7 @@ PyInit__socket(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
Py_TYPE(&sock_type) = &PyType_Type;
|
||||
Py_SET_TYPE(&sock_type, &PyType_Type);
|
||||
m = PyModule_Create(&socketmodule);
|
||||
if (m == NULL)
|
||||
return NULL;
|
||||
|
|
|
@ -1455,7 +1455,7 @@ PyInit_unicodedata(void)
|
|||
{
|
||||
PyObject *m, *v;
|
||||
|
||||
Py_TYPE(&UCD_Type) = &PyType_Type;
|
||||
Py_SET_TYPE(&UCD_Type, &PyType_Type);
|
||||
|
||||
m = PyModule_Create(&unicodedatamodule);
|
||||
if (!m)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue