geforkt von Mirrors/Paper
b06cb423cb
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
49 Zeilen
2.0 KiB
Diff
49 Zeilen
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <spottedleaf@spottedleaf.dev>
|
|
Date: Mon, 6 Apr 2020 18:35:09 -0700
|
|
Subject: [PATCH] Reduce Either Optional allocation
|
|
|
|
In order to get chunk values, we shouldn't need to create
|
|
an optional each time.
|
|
|
|
diff --git a/src/main/java/com/mojang/datafixers/util/Either.java b/src/main/java/com/mojang/datafixers/util/Either.java
|
|
index a90adac7bd..3f65fe7102 100644
|
|
--- a/src/main/java/com/mojang/datafixers/util/Either.java
|
|
+++ b/src/main/java/com/mojang/datafixers/util/Either.java
|
|
@@ -0,0 +0,0 @@ public abstract class Either<L, R> implements App<Either.Mu<R>, L> {
|
|
}
|
|
|
|
private static final class Left<L, R> extends Either<L, R> {
|
|
- private final L value;
|
|
+ private final L value; private Optional<L> valueOptional; // Paper - reduce the optional allocation...
|
|
|
|
public Left(final L value) {
|
|
this.value = value;
|
|
@@ -0,0 +0,0 @@ public abstract class Either<L, R> implements App<Either.Mu<R>, L> {
|
|
|
|
@Override
|
|
public Optional<L> left() {
|
|
- return Optional.of(value);
|
|
+ return this.valueOptional == null ? this.valueOptional = Optional.of(this.value) : this.valueOptional; // Paper - reduce the optional allocation...
|
|
}
|
|
|
|
@Override
|
|
@@ -0,0 +0,0 @@ public abstract class Either<L, R> implements App<Either.Mu<R>, L> {
|
|
}
|
|
|
|
private static final class Right<L, R> extends Either<L, R> {
|
|
- private final R value;
|
|
+ private final R value; private Optional<R> valueOptional; // Paper - reduce the optional allocation...
|
|
|
|
public Right(final R value) {
|
|
this.value = value;
|
|
@@ -0,0 +0,0 @@ public abstract class Either<L, R> implements App<Either.Mu<R>, L> {
|
|
|
|
@Override
|
|
public Optional<R> right() {
|
|
- return Optional.of(value);
|
|
+ return this.valueOptional == null ? this.valueOptional = Optional.of(this.value) : this.valueOptional; // Paper - reduce the optional allocation...
|
|
}
|
|
|
|
@Override
|
|
--
|