diff options
author | Mark Shannon <mark@hotpy.org> | 2024-09-12 15:32:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-12 15:32:45 +0100 |
commit | 4ed7d1d6acc22807bfb5983c98fd59f7cb5061db (patch) | |
tree | 1a8fa46bf3f86fda923747b80a500d160009d637 /Python/optimizer_cases.c.h | |
parent | 3ea51fa2e33797c772af6eaf6ede76d2dc6082ba (diff) | |
download | cpython-4ed7d1d6acc22807bfb5983c98fd59f7cb5061db.tar.gz cpython-4ed7d1d6acc22807bfb5983c98fd59f7cb5061db.zip |
GH-123996: Explicitly mark 'self_or_null' as an array of size 1 to ensure that it is kept in memory for calls (GH-124003)
Diffstat (limited to 'Python/optimizer_cases.c.h')
-rw-r--r-- | Python/optimizer_cases.c.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 672fec3946f..e89c969ad0d 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -1686,11 +1686,13 @@ case _EXPAND_METHOD: { _Py_UopsSymbol *method; - _Py_UopsSymbol *self; + _Py_UopsSymbol **self; + self = &stack_pointer[-1 - oparg]; method = sym_new_not_null(ctx); - self = sym_new_not_null(ctx); + for (int _i = 1; --_i >= 0;) { + self[_i] = sym_new_not_null(ctx); + } stack_pointer[-2 - oparg] = method; - stack_pointer[-1 - oparg] = self; break; } @@ -2045,13 +2047,15 @@ case _EXPAND_METHOD_KW: { _Py_UopsSymbol *method; - _Py_UopsSymbol *self; + _Py_UopsSymbol **self; _Py_UopsSymbol *kwnames; + self = &stack_pointer[-2 - oparg]; method = sym_new_not_null(ctx); - self = sym_new_not_null(ctx); + for (int _i = 1; --_i >= 0;) { + self[_i] = sym_new_not_null(ctx); + } kwnames = sym_new_not_null(ctx); stack_pointer[-3 - oparg] = method; - stack_pointer[-2 - oparg] = self; stack_pointer[-1] = kwnames; break; } |