Skip to content

Commit 95ea687

Browse files
committed
bpo-40024: Update macro of _iomodule to use PyModule_AddType.
1 parent 839e4e9 commit 95ea687

File tree

1 file changed

+16
-20
lines changed

1 file changed

+16
-20
lines changed

Modules/_io/_iomodule.c

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -684,12 +684,8 @@ PyInit__io(void)
684684
state = get_io_state(m);
685685
state->initialized = 0;
686686

687-
#define ADD_TYPE(type, name) \
688-
if (PyType_Ready(type) < 0) \
689-
goto fail; \
690-
Py_INCREF(type); \
691-
if (PyModule_AddObject(m, name, (PyObject *)type) < 0) { \
692-
Py_DECREF(type); \
687+
#define ADD_TYPE(type) \
688+
if (PyModule_AddType(m, type) < 0) { \
693689
goto fail; \
694690
}
695691

@@ -717,54 +713,54 @@ PyInit__io(void)
717713
/* Concrete base types of the IO ABCs.
718714
(the ABCs themselves are declared through inheritance in io.py)
719715
*/
720-
ADD_TYPE(&PyIOBase_Type, "_IOBase");
721-
ADD_TYPE(&PyRawIOBase_Type, "_RawIOBase");
722-
ADD_TYPE(&PyBufferedIOBase_Type, "_BufferedIOBase");
723-
ADD_TYPE(&PyTextIOBase_Type, "_TextIOBase");
716+
ADD_TYPE(&PyIOBase_Type);
717+
ADD_TYPE(&PyRawIOBase_Type);
718+
ADD_TYPE(&PyBufferedIOBase_Type);
719+
ADD_TYPE(&PyTextIOBase_Type);
724720

725721
/* Implementation of concrete IO objects. */
726722
/* FileIO */
727723
PyFileIO_Type.tp_base = &PyRawIOBase_Type;
728-
ADD_TYPE(&PyFileIO_Type, "FileIO");
724+
ADD_TYPE(&PyFileIO_Type);
729725

730726
/* BytesIO */
731727
PyBytesIO_Type.tp_base = &PyBufferedIOBase_Type;
732-
ADD_TYPE(&PyBytesIO_Type, "BytesIO");
728+
ADD_TYPE(&PyBytesIO_Type);
733729
if (PyType_Ready(&_PyBytesIOBuffer_Type) < 0)
734730
goto fail;
735731

736732
/* StringIO */
737733
PyStringIO_Type.tp_base = &PyTextIOBase_Type;
738-
ADD_TYPE(&PyStringIO_Type, "StringIO");
734+
ADD_TYPE(&PyStringIO_Type);
739735

740736
#ifdef MS_WINDOWS
741737
/* WindowsConsoleIO */
742738
PyWindowsConsoleIO_Type.tp_base = &PyRawIOBase_Type;
743-
ADD_TYPE(&PyWindowsConsoleIO_Type, "_WindowsConsoleIO");
739+
ADD_TYPE(&PyWindowsConsoleIO_Type);
744740
#endif
745741

746742
/* BufferedReader */
747743
PyBufferedReader_Type.tp_base = &PyBufferedIOBase_Type;
748-
ADD_TYPE(&PyBufferedReader_Type, "BufferedReader");
744+
ADD_TYPE(&PyBufferedReader_Type);
749745

750746
/* BufferedWriter */
751747
PyBufferedWriter_Type.tp_base = &PyBufferedIOBase_Type;
752-
ADD_TYPE(&PyBufferedWriter_Type, "BufferedWriter");
748+
ADD_TYPE(&PyBufferedWriter_Type);
753749

754750
/* BufferedRWPair */
755751
PyBufferedRWPair_Type.tp_base = &PyBufferedIOBase_Type;
756-
ADD_TYPE(&PyBufferedRWPair_Type, "BufferedRWPair");
752+
ADD_TYPE(&PyBufferedRWPair_Type);
757753

758754
/* BufferedRandom */
759755
PyBufferedRandom_Type.tp_base = &PyBufferedIOBase_Type;
760-
ADD_TYPE(&PyBufferedRandom_Type, "BufferedRandom");
756+
ADD_TYPE(&PyBufferedRandom_Type);
761757

762758
/* TextIOWrapper */
763759
PyTextIOWrapper_Type.tp_base = &PyTextIOBase_Type;
764-
ADD_TYPE(&PyTextIOWrapper_Type, "TextIOWrapper");
760+
ADD_TYPE(&PyTextIOWrapper_Type);
765761

766762
/* IncrementalNewlineDecoder */
767-
ADD_TYPE(&PyIncrementalNewlineDecoder_Type, "IncrementalNewlineDecoder");
763+
ADD_TYPE(&PyIncrementalNewlineDecoder_Type);
768764

769765
/* Interned strings */
770766
#define ADD_INTERNED(name) \

0 commit comments

Comments
 (0)