/* čĊ Ġ* Ġ( C ) ĠCopyright Ġ 2 0 1 6 - 2 0 1 8 ĠK ai ĠBur jack čĊčĊ ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy čĊ Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal čĊ Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights čĊ Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell čĊ Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis čĊ Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : čĊčĊ ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin čĊ Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . čĊčĊ ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR čĊ ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , čĊ ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE čĊ ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER čĊ ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , čĊ ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN čĊ ĠTHE ĠSOFTWARE . čĊčĊ Ġ*/ č Ċ package Ġde . h anno . mem util čĊč Ċ import Ġde . h anno . mem util . Config . Companion . use Unsafe č Ċ import Ġjava . nio . ByteBuffer čĊč Ċ /** čĊ Ġ* ĠHelper Ġclass Ġto Ġdo Ġefficient Ġmemory Ġoperations . čĊ Ġ* ĠHe avy Ġstuff , Ġuse Ġwith Ġextreme Ġca ution ! čĊ Ġ* čĊ Ġ* Ġ@ author ĠThe ĠL WJ GL Ġauthors čĊ Ġ* Ġ@ author ĠK ai ĠBur jack čĊ Ġ* Ġ@ author ĠH ann es ĠT enter čĊ Ġ*/ č Ċ interface ĠMem Util Ġ{ čĊčĊĠĠĠ Ġfun Ġput Long ( dst : ĠByteBuffer , Ġoffset : ĠLong , Ġvalue : ĠLong ) čĊĠĠĠ Ġfun Ġget Long ( dst : ĠByteBuffer , Ġoffset : ĠLong ): ĠLong čĊčĊĠĠĠ Ġfun Ġput Int ( dst : ĠByteBuffer , Ġoffset : ĠLong , Ġvalue : ĠInt ) čĊĠĠĠ Ġfun Ġget Int ( dst : ĠByteBuffer , Ġoffset : ĠLong ): ĠInt čĊčĊĠĠĠ Ġfun Ġput Float ( dst : ĠByteBuffer , Ġoffset : ĠLong , Ġvalue : ĠFloat ) čĊĠĠĠ Ġfun Ġget Float ( dst : ĠByteBuffer , Ġoffset : ĠLong ): ĠFloat čĊčĊĠĠĠ Ġfun Ġput Double ( dst : ĠByteBuffer , Ġoffset : ĠLong , Ġvalue : ĠDouble ) čĊĠĠĠ Ġfun Ġget Double ( dst : ĠByteBuffer , Ġoffset : ĠLong ): ĠDouble čĊčĊĠĠĠ Ġfun Ġput Boolean ( dst : ĠByteBuffer , Ġoffset : ĠLong , Ġvalue : ĠBoolean ) čĊĠĠĠ Ġfun Ġget Boolean ( dst : ĠByteBuffer , Ġoffset : ĠLong ): ĠBoolean čĊčĊĠĠĠ Ġcompanion Ġobject : ĠMem Util Ġby Ġ( if ( use Unsafe ) ĠMem Util Unsafe () Ġelse ĠMem Util N IO ()) č Ċ } čĊčĊč Ċ class ĠConfig Ġ{ čĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġuse Unsafe : ĠBoolean Ġ= Ġfalse čĊĠĠĠ Ġ} č Ċ } čĊ