File tree Expand file tree Collapse file tree 4 files changed +10
-2
lines changed Expand file tree Collapse file tree 4 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -679,6 +679,9 @@ do { \
679679 ADD_INT_CONST_TO_TYPE (mod_state -> ZstdCompressor_type ,
680680 "FLUSH_FRAME" , ZSTD_e_end );
681681
682+ /* Make ZstdCompressor immutable (set Py_TPFLAGS_IMMUTABLETYPE) */
683+ PyType_Freeze (mod_state -> ZstdCompressor_type );
684+
682685#undef ADD_TYPE
683686#undef ADD_INT_MACRO
684687#undef ADD_ZSTD_COMPRESSOR_INT_CONST
Original file line number Diff line number Diff line change @@ -729,6 +729,9 @@ static PyType_Slot zstdcompressor_slots[] = {
729729PyType_Spec zstd_compressor_type_spec = {
730730 .name = "compression.zstd.ZstdCompressor" ,
731731 .basicsize = sizeof (ZstdCompressor ),
732+ // Py_TPFLAGS_IMMUTABLETYPE is not used here as several
733+ // associated constants need to be added to the type.
734+ // PyType_Freeze is called later to set the flag.
732735 .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC ,
733736 .slots = zstdcompressor_slots ,
734737};
Original file line number Diff line number Diff line change @@ -902,6 +902,7 @@ static PyType_Slot ZstdDecompressor_slots[] = {
902902PyType_Spec zstd_decompressor_type_spec = {
903903 .name = "compression.zstd.ZstdDecompressor" ,
904904 .basicsize = sizeof (ZstdDecompressor ),
905- .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC ,
905+ .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE
906+ | Py_TPFLAGS_HAVE_GC ,
906907 .slots = ZstdDecompressor_slots ,
907908};
Original file line number Diff line number Diff line change @@ -278,6 +278,7 @@ static PyType_Slot zstddict_slots[] = {
278278PyType_Spec zstd_dict_type_spec = {
279279 .name = "compression.zstd.ZstdDict" ,
280280 .basicsize = sizeof (ZstdDict ),
281- .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC ,
281+ .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_IMMUTABLETYPE
282+ | Py_TPFLAGS_HAVE_GC ,
282283 .slots = zstddict_slots ,
283284};
You can’t perform that action at this time.
0 commit comments