[Python-checkins] Reuse identifier of PREDICT macros as PREDICT_ID (GH-17155)
Denis Chernikov
webhook-mailer at python.org
Fri Feb 21 04:18:03 EST 2020
https://github.com/python/cpython/commit/baf29b221682be0f4fde53a05ea3f57c3c79f431
commit: baf29b221682be0f4fde53a05ea3f57c3c79f431
branch: master
author: Denis Chernikov <tchernikoff.denis2013 at yandex.ru>
committer: GitHub <noreply at github.com>
date: 2020-02-21T10:17:50+01:00
summary:
Reuse identifier of PREDICT macros as PREDICT_ID (GH-17155)
In function `_PyEval_EvalFrameDefault`, macros PREDICT and PREDICTED use the same identifier creation scheme, which may be shared between them, reducing code repetition, and do ensure that the same identifier is generated.
files:
M Python/ceval.c
diff --git a/Python/ceval.c b/Python/ceval.c
index 426d0bbee8901..3f65820c25da9 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -921,21 +921,23 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
*/
+#define PREDICT_ID(op) PRED_##op
+
#if defined(DYNAMIC_EXECUTION_PROFILE) || USE_COMPUTED_GOTOS
-#define PREDICT(op) if (0) goto PRED_##op
+#define PREDICT(op) if (0) goto PREDICT_ID(op)
#else
#define PREDICT(op) \
- do{ \
+ do { \
_Py_CODEUNIT word = *next_instr; \
opcode = _Py_OPCODE(word); \
- if (opcode == op){ \
+ if (opcode == op) { \
oparg = _Py_OPARG(word); \
next_instr++; \
- goto PRED_##op; \
+ goto PREDICT_ID(op); \
} \
} while(0)
#endif
-#define PREDICTED(op) PRED_##op:
+#define PREDICTED(op) PREDICT_ID(op):
/* Stack manipulation macros */
More information about the Python-checkins
mailing list