File tree 4 files changed +10
-2
lines changed
4 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -679,6 +679,9 @@ do { \
679
679
ADD_INT_CONST_TO_TYPE (mod_state -> ZstdCompressor_type ,
680
680
"FLUSH_FRAME" , ZSTD_e_end );
681
681
682
+ /* Make ZstdCompressor immutable (set Py_TPFLAGS_IMMUTABLETYPE) */
683
+ PyType_Freeze (mod_state -> ZstdCompressor_type );
684
+
682
685
#undef ADD_TYPE
683
686
#undef ADD_INT_MACRO
684
687
#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[] = {
729
729
PyType_Spec zstd_compressor_type_spec = {
730
730
.name = "compression.zstd.ZstdCompressor" ,
731
731
.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.
732
735
.flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC ,
733
736
.slots = zstdcompressor_slots ,
734
737
};
Original file line number Diff line number Diff line change @@ -902,6 +902,7 @@ static PyType_Slot ZstdDecompressor_slots[] = {
902
902
PyType_Spec zstd_decompressor_type_spec = {
903
903
.name = "compression.zstd.ZstdDecompressor" ,
904
904
.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 ,
906
907
.slots = ZstdDecompressor_slots ,
907
908
};
Original file line number Diff line number Diff line change @@ -278,6 +278,7 @@ static PyType_Slot zstddict_slots[] = {
278
278
PyType_Spec zstd_dict_type_spec = {
279
279
.name = "compression.zstd.ZstdDict" ,
280
280
.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 ,
282
283
.slots = zstddict_slots ,
283
284
};
You can’t perform that action at this time.
0 commit comments