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);
}
}
}