@@ -684,12 +684,8 @@ PyInit__io(void)
684
684
state = get_io_state (m );
685
685
state -> initialized = 0 ;
686
686
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) { \
693
689
goto fail; \
694
690
}
695
691
@@ -717,54 +713,54 @@ PyInit__io(void)
717
713
/* Concrete base types of the IO ABCs.
718
714
(the ABCs themselves are declared through inheritance in io.py)
719
715
*/
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 );
724
720
725
721
/* Implementation of concrete IO objects. */
726
722
/* FileIO */
727
723
PyFileIO_Type .tp_base = & PyRawIOBase_Type ;
728
- ADD_TYPE (& PyFileIO_Type , "FileIO" );
724
+ ADD_TYPE (& PyFileIO_Type );
729
725
730
726
/* BytesIO */
731
727
PyBytesIO_Type .tp_base = & PyBufferedIOBase_Type ;
732
- ADD_TYPE (& PyBytesIO_Type , "BytesIO" );
728
+ ADD_TYPE (& PyBytesIO_Type );
733
729
if (PyType_Ready (& _PyBytesIOBuffer_Type ) < 0 )
734
730
goto fail ;
735
731
736
732
/* StringIO */
737
733
PyStringIO_Type .tp_base = & PyTextIOBase_Type ;
738
- ADD_TYPE (& PyStringIO_Type , "StringIO" );
734
+ ADD_TYPE (& PyStringIO_Type );
739
735
740
736
#ifdef MS_WINDOWS
741
737
/* WindowsConsoleIO */
742
738
PyWindowsConsoleIO_Type .tp_base = & PyRawIOBase_Type ;
743
- ADD_TYPE (& PyWindowsConsoleIO_Type , "_WindowsConsoleIO" );
739
+ ADD_TYPE (& PyWindowsConsoleIO_Type );
744
740
#endif
745
741
746
742
/* BufferedReader */
747
743
PyBufferedReader_Type .tp_base = & PyBufferedIOBase_Type ;
748
- ADD_TYPE (& PyBufferedReader_Type , "BufferedReader" );
744
+ ADD_TYPE (& PyBufferedReader_Type );
749
745
750
746
/* BufferedWriter */
751
747
PyBufferedWriter_Type .tp_base = & PyBufferedIOBase_Type ;
752
- ADD_TYPE (& PyBufferedWriter_Type , "BufferedWriter" );
748
+ ADD_TYPE (& PyBufferedWriter_Type );
753
749
754
750
/* BufferedRWPair */
755
751
PyBufferedRWPair_Type .tp_base = & PyBufferedIOBase_Type ;
756
- ADD_TYPE (& PyBufferedRWPair_Type , "BufferedRWPair" );
752
+ ADD_TYPE (& PyBufferedRWPair_Type );
757
753
758
754
/* BufferedRandom */
759
755
PyBufferedRandom_Type .tp_base = & PyBufferedIOBase_Type ;
760
- ADD_TYPE (& PyBufferedRandom_Type , "BufferedRandom" );
756
+ ADD_TYPE (& PyBufferedRandom_Type );
761
757
762
758
/* TextIOWrapper */
763
759
PyTextIOWrapper_Type .tp_base = & PyTextIOBase_Type ;
764
- ADD_TYPE (& PyTextIOWrapper_Type , "TextIOWrapper" );
760
+ ADD_TYPE (& PyTextIOWrapper_Type );
765
761
766
762
/* IncrementalNewlineDecoder */
767
- ADD_TYPE (& PyIncrementalNewlineDecoder_Type , "IncrementalNewlineDecoder" );
763
+ ADD_TYPE (& PyIncrementalNewlineDecoder_Type );
768
764
769
765
/* Interned strings */
770
766
#define ADD_INTERNED (name ) \
0 commit comments