(code)
| 402 | return val |
| 403 | |
| 404 | def _parse_exception_table(code): |
| 405 | iterator = iter(code.co_exceptiontable) |
| 406 | entries = [] |
| 407 | try: |
| 408 | while True: |
| 409 | start = _parse_varint(iterator)*2 |
| 410 | length = _parse_varint(iterator)*2 |
| 411 | end = start + length |
| 412 | target = _parse_varint(iterator)*2 |
| 413 | dl = _parse_varint(iterator) |
| 414 | depth = dl >> 1 |
| 415 | lasti = bool(dl&1) |
| 416 | entries.append(_ExceptionTableEntry(start, end, target, depth, lasti)) |
| 417 | except StopIteration: |
| 418 | return entries |
| 419 | |
| 420 | def _is_backward_jump(op): |
| 421 | return 'JUMP_BACKWARD' in opname[op] |
no test coverage detected