Skip to content
Merged
Show file tree
Hide file tree
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
Fixup NULLing out array items during DECREF_INPUTS
  • Loading branch information
markshannon committed Mar 26, 2025
commit d81c7de752528ef0641bead68879fe9dc1f5b988
6 changes: 6 additions & 0 deletions Python/generated_cases.c.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions Tools/cases_generator/stack.py
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ def pop(self, var: StackItem) -> tuple[str, Local]:
defn = f"{var.name} = &stack_pointer[{self.top_offset.to_c()}];\n"
else:
defn = f"{var.name} = stack_pointer[{self.top_offset.to_c()}];\n"
popped.in_local = True
else:
defn = rename
return defn, popped
Expand Down Expand Up @@ -680,7 +681,7 @@ def close_variable(var: Local, overwrite: str) -> None:
if output is not None:
if output.is_array():
assert len(self.inputs) == 1
self.stack.pop(self.inputs[0].item)
self.stack.drop(self.inputs[0].item, False)
self.stack.push(output)
self.stack.flush(out)
close_variable(self.inputs[0], "")
Expand All @@ -699,7 +700,9 @@ def close_variable(var: Local, overwrite: str) -> None:
for input in reversed(self.inputs[1:]):
input.kill()
self.stack.drop(input.item, self.check_liveness)
self.stack.pop(self.inputs[0].item)
if output is None:
self.inputs[0].kill()
self.stack.drop(self.inputs[0].item, False)
output_in_place = self.outputs and output is self.outputs[0] and lowest.memory_offset is not None
if output_in_place:
output.memory_offset = lowest.memory_offset.copy() # type: ignore[union-attr]
Expand Down
Loading