Skip to content

Commit afbefea

Browse files
Update emitclass.py
1 parent 1f4a3a0 commit afbefea

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

mypyc/codegen/emitclass.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,16 @@ def emit_line() -> None:
283283
if emitter.capi_version < (3, 12):
284284
fields["tp_dictoffset"] = base_size
285285
fields["tp_weaklistoffset"] = weak_offset
286+
elif cl.supports_weakref:
287+
# __weakref__ lives right after the struct
288+
# TODO: It should get a member in the struct instead of doing this nonsense.
289+
weak_offset = base_size
290+
emitter.emit_lines(
291+
f"PyMemberDef {members_name}[] = {{",
292+
f'{{"__weakref__", T_OBJECT_EX, {base_size}, 0, NULL}},',
293+
"{0}",
294+
"};",
295+
)
286296
else:
287297
fields["tp_basicsize"] = base_size
288298

0 commit comments

Comments
 (0)