@@ -104,7 +104,7 @@ def _parse_instructions(code, yield_nones_at_end=0):
104104 extended_arg = 0
105105 extended_arg_offset = None
106106 yield (dis .opname [opcode ], oparg , offset )
107-
107+
108108 for _ in range (yield_nones_at_end ):
109109 yield (None , None , None )
110110
@@ -129,15 +129,6 @@ def _get_instructions_size(ops):
129129 size += _get_instruction_size (op )
130130 else :
131131 size += _get_instruction_size (* op )
132- return size
133-
134- def _get_instructions_size (ops ):
135- size = 0
136- for op in ops :
137- if isinstance (op , str ):
138- size += _get_instruction_size (op )
139- else :
140- size += _get_instruction_size (* op )
141132 return size
142133
143134def _write_instruction (buf , pos , opname , oparg = 0 ):
@@ -182,28 +173,28 @@ def _find_labels_and_gotos(code):
182173 opname1 = oparg1 = offset1 = None # the main one we're looking at each loop iteration
183174 opname2 = oparg2 = offset2 = None
184175 opname3 = oparg3 = offset3 = None
185-
176+
186177 def replace_block_in_stack (stack , old_block , new_block ):
187178 for i , block in enumerate (stack ):
188179 if block == old_block :
189180 stack [i ] = new_block
190-
181+
191182 def replace_block (old_block , new_block ):
192183 replace_block_in_stack (block_stack , old_block , new_block )
193184 for label in labels :
194185 replace_block_in_stack (labels [label ][2 ], old_block , new_block )
195186 for goto in gotos :
196187 replace_block_in_stack (goto [3 ], old_block , new_block )
197-
188+
198189 def pop_block ():
199190 if block_stack :
200191 return block_stack .pop ()
201192 else :
202193 _warn_bug ("can't pop block" )
203-
194+
204195 def pop_block_of_type (type ):
205196 if block_stack and block_stack [- 1 ][0 ] != type :
206- # in 3.8, only finally blocks are supported, so we must determine the except/finally nature ourselves, and replace the block afterwards
197+ # in 3.8, only finally blocks are supported, so we must determine the except/finally nature ourselves, and replace the block afterwards
207198 if not _BYTECODE .has_setup_except and type == "<EXCEPT>" and block_stack [- 1 ][0 ] == '<FINALLY>' :
208199 replace_block (block_stack [- 1 ], (type , block_stack [- 1 ][1 ]))
209200 else :
@@ -212,7 +203,7 @@ def pop_block_of_type(type):
212203
213204 for opname4 , oparg4 , offset4 in _parse_instructions (code .co_code , 3 ):
214205 endoffset1 = offset2
215-
206+
216207 # check for special offsets
217208 if for_exits and offset1 == for_exits [- 1 ]:
218209 last_block = pop_block ()
@@ -225,7 +216,7 @@ def pop_block_of_type(type):
225216 block_counter += 1
226217 block_stack .append (('<FINALLY>' , block_counter ))
227218 finallies .pop ()
228-
219+
229220 # check for special opcodes
230221 if opname1 in ('LOAD_GLOBAL' , 'LOAD_NAME' ):
231222 if opname2 == 'LOAD_ATTR' and opname3 == 'POP_TOP' :
@@ -288,7 +279,7 @@ def _patch_code(code):
288279 new_code = _patched_code_cache .get (code )
289280 if new_code is not None :
290281 return new_code
291-
282+
292283 labels , gotos = _find_labels_and_gotos (code )
293284 buf = array .array ('B' , code .co_code )
294285
@@ -343,7 +334,7 @@ def _patch_code(code):
343334 _inject_nop_sled (buf , pos , end )
344335
345336 new_code = _make_code (code , _array_to_bytes (buf ))
346-
337+
347338 _patched_code_cache [code ] = new_code
348339 return new_code
349340
0 commit comments