(var: Local, overwrite: str)
| 672 | out.emit(f"{close}({name});\n") |
| 673 | |
| 674 | def close_variable(var: Local, overwrite: str) -> None: |
| 675 | nonlocal tmp_defined |
| 676 | close = "PyStackRef_CLOSE" |
| 677 | if "null" in var.name: |
| 678 | close = "PyStackRef_XCLOSE" |
| 679 | var.memory_offset = None |
| 680 | self.save(out) |
| 681 | out.start_line() |
| 682 | if var.size: |
| 683 | if var.size == "1": |
| 684 | close_named(close, f"{var.name}[0]", overwrite) |
| 685 | else: |
| 686 | if overwrite and not tmp_defined: |
| 687 | out.emit("_PyStackRef tmp;\n") |
| 688 | tmp_defined = True |
| 689 | out.emit(f"for (int _i = {var.size}; --_i >= 0;) {{\n") |
| 690 | close_named(close, f"{var.name}[_i]", overwrite) |
| 691 | out.emit("}\n") |
| 692 | else: |
| 693 | close_named(close, var.name, overwrite) |
| 694 | self.reload(out) |
| 695 | |
| 696 | self.clear_dead_inputs() |
| 697 | if not self.inputs: |
nothing calls this directly
no test coverage detected