Skip to content

Commit 5f056ac

Browse files
authored
Fill holes in internal compiler structs (#91458)
1 parent 04f9658 commit 5f056ac

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

Python/compile.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -233,19 +233,23 @@ typedef struct basicblock_ {
233233
reverse order that the block are allocated. b_list points to the next
234234
block, not to be confused with b_next, which is next by control flow. */
235235
struct basicblock_ *b_list;
236-
/* number of instructions used */
237-
int b_iused;
238-
/* length of instruction array (b_instr) */
239-
int b_ialloc;
236+
/* Exception stack at start of block, used by assembler to create the exception handling table */
237+
ExceptStack *b_exceptstack;
240238
/* pointer to an array of instructions, initially NULL */
241239
struct instr *b_instr;
242240
/* If b_next is non-NULL, it is a pointer to the next
243241
block reached by normal control flow. */
244242
struct basicblock_ *b_next;
245-
/* b_return is true if a RETURN_VALUE opcode is inserted. */
246-
unsigned b_return : 1;
243+
/* number of instructions used */
244+
int b_iused;
245+
/* length of instruction array (b_instr) */
246+
int b_ialloc;
247247
/* Number of predecssors that a block has. */
248248
int b_predecessors;
249+
/* depth of stack upon entry of block, computed by stackdepth() */
250+
int b_startdepth;
251+
/* instruction offset for block, computed by assemble_jump_offsets() */
252+
int b_offset;
249253
/* Basic block has no fall through (it ends with a return, raise or jump) */
250254
unsigned b_nofallthrough : 1;
251255
/* Basic block is an exception handler that preserves lasti */
@@ -254,12 +258,8 @@ typedef struct basicblock_ {
254258
unsigned b_visited : 1;
255259
/* Basic block exits scope (it ends with a return or raise) */
256260
unsigned b_exit : 1;
257-
/* depth of stack upon entry of block, computed by stackdepth() */
258-
int b_startdepth;
259-
/* instruction offset for block, computed by assemble_jump_offsets() */
260-
int b_offset;
261-
/* Exception stack at start of block, used by assembler to create the exception handling table */
262-
ExceptStack *b_exceptstack;
261+
/* b_return is true if a RETURN_VALUE opcode is inserted. */
262+
unsigned b_return : 1;
263263
} basicblock;
264264

265265
/* fblockinfo tracks the current frame block.
@@ -7051,23 +7051,23 @@ compiler_match(struct compiler *c, stmt_ty s)
70517051

70527052
struct assembler {
70537053
PyObject *a_bytecode; /* bytes containing bytecode */
7054+
PyObject *a_lnotab; /* bytes containing lnotab */
7055+
PyObject *a_enotab; /* bytes containing enotab */
7056+
PyObject *a_cnotab; /* bytes containing cnotab */
7057+
PyObject *a_except_table; /* bytes containing exception table */
7058+
basicblock *a_entry;
70547059
int a_offset; /* offset into bytecode */
70557060
int a_nblocks; /* number of reachable blocks */
7056-
PyObject *a_lnotab; /* bytes containing lnotab */
7057-
PyObject* a_enotab; /* bytes containing enotab */
7058-
PyObject* a_cnotab; /* bytes containing cnotab */
7061+
int a_except_table_off; /* offset into exception table */
70597062
int a_lnotab_off; /* offset into lnotab */
70607063
int a_enotab_off; /* offset into enotab */
70617064
int a_cnotab_off; /* offset into cnotab */
7062-
PyObject *a_except_table; /* bytes containing exception table */
7063-
int a_except_table_off; /* offset into exception table */
70647065
int a_prevlineno; /* lineno of last emitted line in line table */
70657066
int a_prev_end_lineno; /* end_lineno of last emitted line in line table */
70667067
int a_lineno; /* lineno of last emitted instruction */
70677068
int a_end_lineno; /* end_lineno of last emitted instruction */
70687069
int a_lineno_start; /* bytecode start offset of current lineno */
70697070
int a_end_lineno_start; /* bytecode start offset of current end_lineno */
7070-
basicblock *a_entry;
70717071
};
70727072

70737073
Py_LOCAL_INLINE(void)

0 commit comments

Comments
 (0)