Browse Source

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.
pull/18592/head
Denis Chernikov 6 years ago
committed by GitHub
parent
commit
baf29b2216
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      Python/ceval.c

12
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 */

Loading…
Cancel
Save