Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Enforce tp_traverse/clear in AllocateTypeObject
  • Loading branch information
filmor committed Oct 30, 2022
commit da082ac487190aed5d325a346b0a6c268c870020
5 changes: 5 additions & 0 deletions src/runtime/TypeManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,11 @@ internal static PyType AllocateTypeObject(string name, PyType metatype)
Util.WriteRef(type, TypeOffset.name, new NewReference(temp).Steal());
Util.WriteRef(type, TypeOffset.qualname, temp.Steal());

// Ensure that tp_traverse and tp_clear are always set, since their
// existence is enforced in newer Python versions in PyType_Ready
Util.WriteIntPtr(type, TypeOffset.tp_traverse, subtype_traverse);
Util.WriteIntPtr(type, TypeOffset.tp_clear, subtype_clear);

InheritSubstructs(type.Reference.DangerousGetAddress());

return type;
Expand Down