package Ġorg . jetbrains . sk ia . impl Ċ Ċ import Ġjava . lang . ref . Reference Ċ Ċ actual Ġabstract Ġclass ĠNative Ġactual Ġconstructor ( ptr : ĠNative Pointer ) Ġ{ ĊĠĠĠ Ġinternal Ġactual Ġvar Ġ_ ptr : ĠNative Pointer ĊĊĠĠĠ Ġactual Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġactual Ġval ĠNull Pointer : ĠNative Pointer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ 0 L ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjava Class . simple Name Ġ+ Ġ" (_ ptr = 0 x " Ġ+ Ġ_ ptr . toString ( 1 6 ) Ġ+ Ġ")" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġother ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! java Class . is Instance ( other )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Other Ġ= Ġother Ġas ĠNative ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ ptr Ġ== Ġn Other ._ ptr ) Ġtrue Ġelse Ġnative Equals ( n Other ) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReference . reach ability Fence ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReference . reach ability Fence ( other ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFIXME Ġtwo Ġdifferent Ġpointers Ġmight Ġpoint Ġto Ġequal Ġobjects ĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjava . lang . Long . hashCode (_ ptr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġactual Ġopen Ġfun Ġnative Equals ( other : ĠNative ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ptr Ġ== ĠNull Pointer ) Ġthrow ĠRuntimeException (" Can 't Ġwrap Ġnullptr ") ĊĠĠĠĠĠĠĠ Ġ_ ptr Ġ= Ġptr ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġactual Ġfun Ġreach ability Barrier ( obj : ĠAny ?) Ġ{ ĊĠĠĠ ĠReference . reach ability Fence ( obj ) Ċ } Ċ Ċ actual Ġtype alias ĠNative Pointer Ġ= ĠLong Ċ Ċ actual Ġtype alias ĠInter op Pointer Ġ= ĠAny ? Ċ Ċ internal Ġobject Ġthe Scope : ĠInter op Scope () Ċ internal Ġactual Ġinline Ġfun Ġ< T > Ġinter op Scope ( block : ĠInter op Scope . () Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġthe Scope . block () Ċ } Ċ Ċ internal Ġactual Ġopen Ġclass ĠInter op Scope Ġactual Ġconstructor () Ġ{ ĊĠĠĠ Ġactual Ġfun Ġto Interop ( string : ĠString ?): ĠInter op Pointer Ġ= Ġstring ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠByteArray ?): ĠInter op Pointer Ġ= Ġarray ĊĠĠĠ Ġactual Ġfun Ġto Interop For Result ( array : ĠByteArray ?): ĠInter op Pointer Ġ= Ġto Interop ( array ) ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠByteArray ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠShort Array ?): ĠInter op Pointer Ġ= Ġarray ĊĠĠĠ Ġactual Ġfun Ġto Interop For Result ( array : ĠShort Array ?): ĠInter op Pointer Ġ= Ġto Interop ( array ) ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠShort Array ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠInt Array ?): ĠInter op Pointer Ġ= Ġarray ĊĠĠĠ Ġactual Ġfun Ġto Interop For Result ( array : ĠInt Array ?): ĠInter op Pointer Ġ= Ġto Interop ( array ) ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠInt Array ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠLong Array ?): ĠInter op Pointer Ġ= Ġarray ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠLong Array ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠFloat Array ?): ĠInter op Pointer Ġ= Ġarray ĊĠĠĠ Ġactual Ġfun Ġto Interop For Result ( array : ĠFloat Array ?): ĠInter op Pointer Ġ= Ġto Interop ( array ) ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠFloat Array ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠDouble Array ?): ĠInter op Pointer Ġ= Ġarray ĊĠĠĠ Ġactual Ġfun Ġto Interop For Result ( array : ĠDouble Array ?): ĠInter op Pointer Ġ= Ġto Interop ( array ) ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠDouble Array ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( array : ĠNative Pointer Array ?): ĠInter op Pointer Ġ= Ġarray ?. back ing ĊĠĠĠ Ġactual Ġfun Ġto Interop For Result ( array : ĠNative Pointer Array ?): ĠInter op Pointer Ġ= Ġto Interop ( array ) ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop ( result : ĠNative Pointer Array ) Ġ{} ĊĊĠĠĠ Ġactual Ġfun Ġto Interop ( string Array : ĠArray < String >? ): ĠInter op Pointer Ġ= ĠstringArray ĊĠĠĠ Ġactual Ġfun ĠInter op Pointer . from Interop Native Pointer Array (): ĠNative Pointer Array Ġ= ĊĠĠĠĠĠĠĠ ĠNative Pointer Array (( this Ġas ĠLong Array ). size , Ġthis ) ĊĠĠĠ Ġactual Ġinline Ġfun Ġ< re ified ĠT > ĠInter op Pointer . from Interop ( decoder : ĠArray Interop Decoder < T >): ĠArray < T > Ġ= ĊĠĠĠĠĠĠĠ Ġthis @ from Interop Ġas ĠArray < T > ĊĠĠĠ Ġactual Ġfun Ġto Interop For Arrays Of Pointers ( interop Pointers : ĠArray < Interop Pointer >): ĠInter op Pointer Ġ= Ġinter op Pointers ĊĊĠĠĠ Ġactual Ġfun Ġcallback ( callback : Ġ(() Ġ-> ĠUnit )? ) Ġ= Ġcallback Ġas ĠAny ? ĊĠĠĠ Ġactual Ġfun Ġint Callback ( callback : Ġ(() Ġ-> ĠInt )? ) Ġ= Ġcallback Ġas ĠAny ? ĊĠĠĠ Ġactual Ġfun Ġnative Pointer Callback ( callback : Ġ(() Ġ-> ĠNative Pointer )? ) Ġ= Ġcallback Ġas ĠAny ? ĊĠĠĠ Ġactual Ġfun Ġinter op Pointer Callback ( callback : Ġ(() Ġ-> ĠInter op Pointer )? ) Ġ= Ġcallback Ġas ĠAny ? ĊĠĠĠ Ġactual Ġfun Ġboolean Callback ( callback : Ġ(() Ġ-> ĠBoolean )? ) Ġ= Ġcallback Ġas ĠAny ? ĊĊĠĠĠ Ġactual Ġfun Ġvirtual ( method : Ġ() Ġ-> ĠUnit ) Ġ= Ġcallback ( method ) ĊĠĠĠ Ġactual Ġfun Ġvirtual Int ( method : Ġ() Ġ-> ĠInt ) Ġ= Ġint Callback ( method ) ĊĠĠĠ Ġactual Ġfun Ġvirtual Native Pointer ( method : Ġ() Ġ-> ĠNative Pointer ) Ġ= Ġnative Pointer Callback ( method ) ĊĠĠĠ Ġactual Ġfun Ġvirtual Interop Pointer ( method : Ġ() Ġ-> ĠInter op Pointer ) Ġ= Ġinter op Pointer Callback ( method ) ĊĠĠĠ Ġactual Ġfun Ġvirtual Boolean ( method : Ġ() Ġ-> ĠBoolean ) Ġ= Ġboolean Callback ( method ) ĊĊĠĠĠ Ġactual Ġfun Ġrelease () Ġ{} Ċ } Ċ Ċ actual Ġclass ĠNative Pointer Array Ġconstructor ( size : ĠInt , Ġinternal Ġval Ġbacking : ĠLong Array ) Ġ{ ĊĊĠĠĠ Ġactual Ġconstructor ( size : ĠInt ) Ġ: Ġthis ( size , ĠLong Array ( size )) ĊĊĠĠĠ Ġactual Ġoperator Ġfun Ġget ( index : ĠInt ): ĠNative Pointer Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbacking [ index ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġoperator Ġfun Ġset ( index : ĠInt , Ġvalue : ĠNative Pointer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbacking [ index ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġval Ġsize : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbacking . size Ċ } Ċ