re-inline Goal.Flag iteration

This commit is contained in:
Jason Penilla
2021-11-30 00:36:30 -08:00
parent aa8a9905a9
commit 82eff9628d
3 changed files with 16 additions and 58 deletions

View File

@@ -1957,8 +1957,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+package com.destroystokyo.paper.util.set;
+
+import java.util.Collection;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
+/**
+ * @author Spottedleaf <Spottedleaf@users.noreply.github.com>
@@ -2023,27 +2021,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ return (other.backingSet & this.backingSet) != 0;
+ }
+
+ public void forEach(final E[] values, final Consumer<E> action) {
+ long iterator = this.getBackingSet();
+ int wrappedGoalSize = this.size();
+ for (int i = 0; i < wrappedGoalSize; ++i) {
+ final E type = values[Long.numberOfTrailingZeros(iterator)];
+ iterator ^= io.papermc.paper.util.IntegerUtil.getTrailingBit(iterator);
+ action.accept(type);
+ }
+ }
+
+ public boolean anyMatch(final E[] values, final Predicate<E> predicate) {
+ long iterator = this.getBackingSet();
+ int wrappedGoalSize = this.size();
+ for (int i = 0; i < wrappedGoalSize; ++i) {
+ final E type = values[Long.numberOfTrailingZeros(iterator)];
+ iterator ^= io.papermc.paper.util.IntegerUtil.getTrailingBit(iterator);
+ if (predicate.test(type)) {
+ return true;
+ }
+ }
+ return false;
+ public boolean hasElement(final E element) {
+ return (this.backingSet & (1L << element.ordinal())) != 0;
+ }
+}
diff --git a/src/main/java/io/papermc/paper/chunk/SingleThreadChunkRegionManager.java b/src/main/java/io/papermc/paper/chunk/SingleThreadChunkRegionManager.java