aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/optimizer_cases.c.h
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2024-09-12 15:32:45 +0100
committerGitHub <noreply@github.com>2024-09-12 15:32:45 +0100
commit4ed7d1d6acc22807bfb5983c98fd59f7cb5061db (patch)
tree1a8fa46bf3f86fda923747b80a500d160009d637 /Python/optimizer_cases.c.h
parent3ea51fa2e33797c772af6eaf6ede76d2dc6082ba (diff)
downloadcpython-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.h16
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;
}