Commit graph

10 commits

Author SHA1 Message Date
Nassim Jahnke
5c5a21fb9f More more more more more more more patches 2023-03-14 21:55:49 +01:00
Nassim Jahnke
08ab8edb76 Start working on 1.19.4 2023-03-14 18:11:24 +01:00
Nassim Jahnke
bbd997db62 More patchidy patched patches 2022-12-07 22:35:34 +01:00
Nassim Jahnke
b7dd55ce72 API patches 2022-12-07 17:46:46 +01:00
Jake Potrebic
f93eb6e135 update yarn param mappings (#8563) 2022-11-12 12:57:41 -08:00
Nassim Jahnke
983a4b0b2b More more more more more more work 2022-07-27 23:32:15 +02:00
Nassim Jahnke
858aabab7c Move patches over, start with first few 2022-07-27 20:52:03 +02:00
Nassim Jahnke
4d7d4e996e More more more more more more more more more patches 2022-06-08 14:33:46 +02:00
Nassim Jahnke
1148687a8d Prepare for 1.19 dev 2022-06-07 18:52:56 +02:00
stonar96
df42b6f60c Optimize HashMapPalette (#5074)
HashMapPalette uses an instance of CrudeIncrementalIntIdentityHashBiMap
internally. A Palette has a preset maximum size = 1 << bits.
CrudeIncrementalIntIdentityHashBiMap has an initial size but is
automatically resized. The CrudeIncrementalIntIdentityHashBiMap is created
with the maximum size in the constructor of HashMapPalette, with the aim
that it doesn't need to be resized anymore. However, there are two things
that I think Mojang hasn't considered here:
1) The CrudeIncrementalIntIdentityHashBiMap is resized, when its initial
size is reached and not the next time, when a further object is added.
2) HashMapPalette adds objects (unnecessarily) before checking if the
initial size of CrudeIncrementalIntIdentityHashBiMap is reached.
This means to actually avoid resize operations in
CrudeIncrementalIntIdentityHashBiMap, one has to add 2 to the initial size
or add 1 and check the size before adding objects. This commit implements
the second approach. Note that this isn't only an optimization but also
makes async reads of Palettes fail-safe. An async read while the
CrudeIncrementalIntIdentityHashBiMap is resized is fatal and can even lead
to corrupted data. This is also something that Anti-Xray is currently
relying on.
2021-12-04 15:56:34 +01:00