diff options
| author | Guido van Rossum <guido@python.org> | 2023-02-08 01:35:55 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-08 01:35:55 (GMT) |
| commit | b2b85b5db9cfdb24f966b61757536a898abc3830 (patch) | |
| tree | b5f09e352132a15f5e782e75ce6205b3da0552b1 /Python/generated_cases.c.h | |
| parent | aacbdb0c650492756738b044e6ddf8b72f89a1a2 (diff) | |
| download | cpython-b2b85b5db9cfdb24f966b61757536a898abc3830.zip cpython-b2b85b5db9cfdb24f966b61757536a898abc3830.tar.gz cpython-b2b85b5db9cfdb24f966b61757536a898abc3830.tar.bz2 | |
gh-98831: Modernize FORMAT_VALUE (#101628)
Generator update: support balanced parentheses and brackets in conditions and size expressions.
Diffstat (limited to 'Python/generated_cases.c.h')
| -rw-r--r-- | Python/generated_cases.c.h | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index ded68d0..3ef8086 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -3703,16 +3703,12 @@ } TARGET(FORMAT_VALUE) { - /* Handles f-string value formatting. */ + PyObject *fmt_spec = ((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? PEEK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)) : NULL; + PyObject *value = PEEK(1 + (((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); PyObject *result; - PyObject *fmt_spec; - PyObject *value; + /* Handles f-string value formatting. */ PyObject *(*conv_fn)(PyObject *); int which_conversion = oparg & FVC_MASK; - int have_fmt_spec = (oparg & FVS_MASK) == FVS_HAVE_SPEC; - - fmt_spec = have_fmt_spec ? POP() : NULL; - value = POP(); /* See if any conversion is specified. */ switch (which_conversion) { @@ -3735,7 +3731,7 @@ Py_DECREF(value); if (result == NULL) { Py_XDECREF(fmt_spec); - goto error; + if (true) { STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); goto pop_1_error; } } value = result; } @@ -3753,12 +3749,10 @@ result = PyObject_Format(value, fmt_spec); Py_DECREF(value); Py_XDECREF(fmt_spec); - if (result == NULL) { - goto error; - } + if (result == NULL) { STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); goto pop_1_error; } } - - PUSH(result); + STACK_SHRINK((((oparg & FVS_MASK) == FVS_HAVE_SPEC) ? 1 : 0)); + POKE(1, result); DISPATCH(); } |
