Lib.Krakatau.ssa.ssa_jumps.onexception.pyc Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of krakatau-lib Show documentation
Show all versions of krakatau-lib Show documentation
Assembler, disassebmler, decompiler and compiler tools library for Java.
?
?HRc @ s` d d l m Z d d l m Z d d l m Z m Z d d l m Z d e f d ? ? YZ d S( i ( t BaseJump( t Gotoi ( t CatchSetManagert ExceptionSet( t ObjectConstraintt OnExceptionc B se e Z d
d ? Z d ? Z d ? Z d ? Z d ? Z d ? Z d ? Z d ? Z
d ? Z d ? Z RS( c C s? t t | ? j | | j g ? | | _ g } xk | D]c \ } } } }
| | k o^ | k n r5 |
r| | j |
? d n d } | j | | f ? q5 q5 Wt | j | ? | _ | j j
? d S( Ni s java/lang/Throwable( t superR t __init__t outExceptiont defaultt getConstPoolArgst appendR t envt cst pruneKeys( t selft parentt keyt linet rawExceptionHandlerst fallthrought chpairst startt endt handlert indext catchtype( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyR s c C s | j j i | | 6? d S( N( R
t replaceKeys( R t oldt new( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt replaceExceptTarget s c C s% | j | k r | n | j | _ d S( N( R ( R R R ( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt replaceNormalTarget s c C sE | j j | ? | j d k rA | j | k rA | | j | _ n d S( N( R
R R t None( R t blockDict( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt
replaceBlocks s c C s? xV | D]N \ } } | rE | j j | j j | 8_ | j j | =q | j | d ? q W| j j ? | j j s? | j s d St | j | j ? S| S( N( R
t maskt setsR R R R R R ( R t
pairsToRemovet childt t( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt reduceSuccessors s
c C s | j d k r | j g Sg S( N( R R ( R ( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt getNormalSuccessors- s c C s | j j j ? S( N( R
R$ t keys( R ( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt getExceptSuccessors0 s c C s+ t t | ? j ? } | j j ? | _ | S( N( R R t cloneR
t copy( R R ( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyR, 3 s c C sy | d k r t j } nD t | j j g | j j | j j BD] \ } } | d f ^ q; ? } | j j | ? | j g ? S( N( (
R R t EMPTYt typesR t superst exactR
t newMaskR( ( R t xR# t namet dim( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt constrainJumps9 s
Dc sH | \ ? } | r( ? ? f d ? } | S? ? j k s= t ? d ? Sd S( Nc s? | d k r d S| j } | j | j B} g | D] } | d ^ q0 } d | k r[ d } n t j | j | ? } ? j j ? | @} | s? d St | j
? d } t j | j g | D] } | d f ^ q? g d t ?f Sd S( Ni s java/lang/Objects java/lang/Throwablet nonnull( s java/lang/Throwable( N(
R R/ R0 R1 R t fromTopsR R
R$ t zipt pairsR t True( R3 R' t top_ttst ttt topsR# t esett ntopst base( t blockR ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt propagateConstraintsC s c S s d g S( N( R ( t arg( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt W s ( R t AssertionError( R t .1RB R' RC ( ( RB R sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt getSuccessorConstraintsA s N(
t __name__t
__module__R R R R R" R( R) R+ R, R6 RH ( ( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyR s N(
RA R t gotoR t exceptionsetR R t constraintsR R ( ( ( sI /home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/onexception.pyt s
© 2015 - 2025 Weber Informatics LLC | Privacy Policy