Simplify some compareTo operations

I believe they have intrinsics even for the long-form Integer.compareTo(Integer.valueOf(a), Integer.valueOf(b)) format which avoids the intermediate allocation.

So this probably won't make things faster, just makes the code a little cleaner.

Integer.compare was added in Java 1.7 which seems safe. Added to Android in SDK 19, which is less than the 21 minSDK supported by protobuf: 303239d74d

PiperOrigin-RevId: 653438420
pull/17457/head
Mark Hansen 8 months ago committed by Copybara-Service
parent ed54faf736
commit 5b45a65567
  1. 5
      java/core/src/main/java/com/google/protobuf/ByteString.java
  2. 2
      java/core/src/main/java/com/google/protobuf/Descriptors.java

@ -287,13 +287,12 @@ public abstract class ByteString implements Iterable<Byte>, Serializable {
while (formerBytes.hasNext() && latterBytes.hasNext()) {
int result =
Integer.valueOf(toInt(formerBytes.nextByte()))
.compareTo(toInt(latterBytes.nextByte()));
Integer.compare(toInt(formerBytes.nextByte()), toInt(latterBytes.nextByte()));
if (result != 0) {
return result;
}
}
return Integer.valueOf(former.size()).compareTo(Integer.valueOf(latter.size()));
return Integer.compare(former.size(), latter.size());
}
};

@ -2343,7 +2343,7 @@ public final class Descriptors {
new Comparator<EnumValueDescriptor>() {
@Override
public int compare(EnumValueDescriptor o1, EnumValueDescriptor o2) {
return Integer.valueOf(o1.getNumber()).compareTo(o2.getNumber());
return Integer.compare(o1.getNumber(), o2.getNumber());
}
};

Loading…
Cancel
Save