cache: Correct Location loading

I guess this changed when they hit the 32k object limit.
This commit is contained in:
Max Weber
2018-10-25 03:56:47 -06:00
parent 6507f93495
commit 608d5fb7a3
2 changed files with 24 additions and 10 deletions

View File

@@ -47,7 +47,7 @@ public class LocationsLoader
int id = -1; int id = -1;
int idOffset; int idOffset;
while ((idOffset = buf.readUnsignedShortSmart()) != 0) while ((idOffset = buf.readUnsignedIntSmartShortCompat()) != 0)
{ {
id += idOffset; id += idOffset;

View File

@@ -157,6 +157,20 @@ public class InputStream extends java.io.InputStream
return peek < 128 ? this.readUnsignedByte() : this.readUnsignedShort() - 0x8000; return peek < 128 ? this.readUnsignedByte() : this.readUnsignedShort() - 0x8000;
} }
public int readUnsignedIntSmartShortCompat()
{
int var1 = 0;
int var2;
for (var2 = this.readUnsignedShortSmart(); var2 == 32767; var2 = this.readUnsignedShortSmart())
{
var1 += 32767;
}
var1 += var2;
return var1;
}
public String readString() public String readString()
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();