/* Ċ * ĠCopyright Ġ 2 0 1 9 Ġpeng u in _ ww y < 9 4 0 3 7 5 6 0 6 @ qq . com > Ċ * Ċ * ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ * Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ * ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ * Ċ * ĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ * Ċ * ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ * Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ * ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ * ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ * Ġlimitations Ġunder Ġthe ĠLicense . Ċ */ Ċ Ċ package Ġcom . ded x . dex . struct Ċ Ċ import Ġcom . android . dx . io . instructions . Decoded Instruction Ċ import Ġorg . object web . asm . Label Ċ Ċ class ĠInst Node ( val Ġcursor : ĠInt , Ġval Ġinstruction : ĠDe coded Instruction ) Ġ: ĠAttr Node Ġ{ ĊĠĠĠ Ġoverride Ġval Ġattributes : ĠMutable Map < Attr Key , ĠAttr Value > Ġ= ĠHashMap () ĊĊĠĠĠ Ġfun Ġopcode () Ġ= Ġinstruction . opcode ĊĊĠĠĠ Ġfun Ġtarget () Ġ= Ġinstruction . target ĊĊĠĠĠ Ġfun Ġset LineNumber ( line : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes [ Attr Key . LIN ENUM BER ] Ġ= ĠAttr Value ( Enc . ENC _ INT , Ġline ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget LineNumber () Ġ= Ġattributes [ Attr Key . LIN ENUM BER ]?. getAs Int () ĊĊĠĠĠ Ġfun Ġset L able ( label : ĠLabel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes [ Attr Key . LABEL ] Ġ= ĠAttr Value Label ( label ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Label () Ġ= Ġwhen Ġ( attributes . containsKey ( Attr Key . LABEL )) Ġ{ ĊĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġattributes [ Attr Key . LABEL ] Ġas ĠAttr Value Label ĊĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Label Or Put () Ġ= Ġattributes . get Or Put ( Attr Key . LABEL ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn @ get Or Put ĠAttr Value Label ( Label ()) ĊĠĠĠ Ġ} Ġas ĠAttr Value Label ĊĊĠĠĠ Ġfun Ġset Try Entry ( block : ĠTry Catch Block ) Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes [ Attr Key . TRY _ ENTRY ] Ġ= ĠAttr Value ( Enc . ENC _ TRY _ ENTRY , Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Try Entry () Ġ= Ġattributes [ Attr Key . TRY _ ENTRY ]?. getAs Try Entry () ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinstruction . toString () ĊĠĠĠ Ġ} Ċ } Ċ