BitSetUtil class

Пакет: com.hypixel.hytale.common.util

Файл: com/hypixel/hytale/common/util/BitSetUtil.java

Поля (9)

МодификаторыТипИмя
WORDS_IN_USE_OFFSET
WORDS_IN_USE_OFFSET
final long WORDS_OFFSET
WORDS_OFFSET
WORDS_OFFSET
int var2
long[] var3
long[] var4
var4

Методы (6)

МодификаторыВозвратСигнатура
static void copyValuesvoid copyValues(@Nonnull BitSet var0, @Nonnull BitSet var1)
static void copyValuesSlowvoid copyValuesSlow(@Nonnull BitSet var0, @Nonnull BitSet var1)
abstract copyValuesSlow copyValuesSlow(var0, var1)
if if(UnsafeUtil.UNSAFE == null)
if if(var2 > var4.length)
if if(UnsafeUtil.UNSAFE != null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.common.util;

class="kw">import com.hypixel.hytale.sneakythrow.SneakyThrow;
class="kw">import com.hypixel.hytale.unsafe.UnsafeUtil;
class="kw">import java.util.BitSet;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BitSetUtil {
   class="kw">public class="kw">static class="kw">final long WORDS_OFFSET;
   class="kw">public class="kw">static class="kw">final long WORDS_IN_USE_OFFSET;

   class="kw">public BitSetUtil() {
   }

   class="kw">public class="kw">static void copyValues(@Nonnull BitSet var0, @Nonnull BitSet var1) {
      if (UnsafeUtil.UNSAFE == null) {
         copyValuesSlow(var0, var1);
      } else {
         int var2 = UnsafeUtil.UNSAFE.getInt(var0, WORDS_IN_USE_OFFSET);
         UnsafeUtil.UNSAFE.putInt(var1, WORDS_IN_USE_OFFSET, var2);
         long[] var3 = (long[])UnsafeUtil.UNSAFE.getObject(var0, WORDS_OFFSET);
         long[] var4 = (long[])UnsafeUtil.UNSAFE.getObject(var1, WORDS_OFFSET);
         if (var2 > var4.length) {
            var4 = new long[var2];
            UnsafeUtil.UNSAFE.putObject(var1, WORDS_OFFSET, var4);
         }

         System.arraycopy(var3, 0, var4, 0, var2);
      }
   }

   class="kw">public class="kw">static void copyValuesSlow(@Nonnull BitSet var0, @Nonnull BitSet var1) {
      var1.clear();
      var1.or(var0);
   }

   class="kw">static {
      try {
         if (UnsafeUtil.UNSAFE != null) {
            WORDS_OFFSET = UnsafeUtil.UNSAFE.objectFieldOffset(BitSet.class.getDeclaredField("words"));
            WORDS_IN_USE_OFFSET = UnsafeUtil.UNSAFE.objectFieldOffset(BitSet.class.getDeclaredField("wordsInUse"));
         } else {
            WORDS_OFFSET = 0L;
            WORDS_IN_USE_OFFSET = 0L;
         }
      } catch (NoSuchFieldException var1) {
         throw SneakyThrow.sneakyThrow(var1);
      }
   }
}