Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d41bddd

Browse files
authored
Move big block of macros out of function to improve readability. (GH-25020)
1 parent b045cda commit d41bddd

1 file changed

Lines changed: 40 additions & 38 deletions

File tree

Python/ceval.c

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,40 +1231,6 @@ eval_frame_handle_pending(PyThreadState *tstate)
12311231
return 0;
12321232
}
12331233

1234-
PyObject* _Py_HOT_FUNCTION
1235-
_PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
1236-
{
1237-
_Py_EnsureTstateNotNULL(tstate);
1238-
1239-
#ifdef DXPAIRS
1240-
int lastopcode = 0;
1241-
#endif
1242-
PyObject **stack_pointer; /* Next free slot in value stack */
1243-
const _Py_CODEUNIT *next_instr;
1244-
int opcode; /* Current opcode */
1245-
int oparg; /* Current opcode argument, if any */
1246-
PyObject **fastlocals, **freevars;
1247-
PyObject *retval = NULL; /* Return value */
1248-
struct _ceval_state * const ceval2 = &tstate->interp->ceval;
1249-
_Py_atomic_int * const eval_breaker = &ceval2->eval_breaker;
1250-
PyCodeObject *co;
1251-
1252-
/* when tracing we set things up so that
1253-
1254-
not (instr_lb <= current_bytecode_offset < instr_ub)
1255-
1256-
is true when the line being executed has changed. The
1257-
initial values are such as to make this false the first
1258-
time it is tested. */
1259-
1260-
const _Py_CODEUNIT *first_instr;
1261-
PyObject *names;
1262-
PyObject *consts;
1263-
_PyOpcache *co_opcache;
1264-
1265-
#ifdef LLTRACE
1266-
_Py_IDENTIFIER(__ltrace__);
1267-
#endif
12681234

12691235
/* Computed GOTOs, or
12701236
the-optimization-commonly-but-improperly-known-as-"threaded code"
@@ -1323,9 +1289,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
13231289
#endif
13241290

13251291
#if USE_COMPUTED_GOTOS
1326-
/* Import the static jump table */
1327-
#include "opcode_targets.h"
1328-
13291292
#define TARGET(op) \
13301293
op: \
13311294
TARGET_##op
@@ -1619,7 +1582,46 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
16191582

16201583
#endif
16211584

1622-
/* Start of code */
1585+
1586+
PyObject* _Py_HOT_FUNCTION
1587+
_PyEval_EvalFrameDefault(PyThreadState *tstate, PyFrameObject *f, int throwflag)
1588+
{
1589+
_Py_EnsureTstateNotNULL(tstate);
1590+
1591+
#if USE_COMPUTED_GOTOS
1592+
/* Import the static jump table */
1593+
#include "opcode_targets.h"
1594+
#endif
1595+
1596+
#ifdef DXPAIRS
1597+
int lastopcode = 0;
1598+
#endif
1599+
PyObject **stack_pointer; /* Next free slot in value stack */
1600+
const _Py_CODEUNIT *next_instr;
1601+
int opcode; /* Current opcode */
1602+
int oparg; /* Current opcode argument, if any */
1603+
PyObject **fastlocals, **freevars;
1604+
PyObject *retval = NULL; /* Return value */
1605+
struct _ceval_state * const ceval2 = &tstate->interp->ceval;
1606+
_Py_atomic_int * const eval_breaker = &ceval2->eval_breaker;
1607+
PyCodeObject *co;
1608+
1609+
/* when tracing we set things up so that
1610+
1611+
not (instr_lb <= current_bytecode_offset < instr_ub)
1612+
1613+
is true when the line being executed has changed. The
1614+
initial values are such as to make this false the first
1615+
time it is tested. */
1616+
1617+
const _Py_CODEUNIT *first_instr;
1618+
PyObject *names;
1619+
PyObject *consts;
1620+
_PyOpcache *co_opcache;
1621+
1622+
#ifdef LLTRACE
1623+
_Py_IDENTIFIER(__ltrace__);
1624+
#endif
16231625

16241626
if (_Py_EnterRecursiveCall(tstate, "")) {
16251627
return NULL;

0 commit comments

Comments
 (0)