Replace an expensive null throw with a cheap one in MessageSchema.mergeFrom mergeFrom is a very hot method. R8 can turn this into getClass() call. PiperOrigin-RevId: 875335888
diff --git a/java/core/src/main/java/com/google/protobuf/MessageSchema.java b/java/core/src/main/java/com/google/protobuf/MessageSchema.java index 193ad9e..0f09aee 100644 --- a/java/core/src/main/java/com/google/protobuf/MessageSchema.java +++ b/java/core/src/main/java/com/google/protobuf/MessageSchema.java
@@ -45,6 +45,7 @@ import static com.google.protobuf.ArrayDecoders.mergeGroupField; import static com.google.protobuf.ArrayDecoders.mergeMessageField; import static com.google.protobuf.ArrayDecoders.skipField; +import static com.google.protobuf.Internal.checkNotNull; import com.google.protobuf.ArrayDecoders.Registers; import com.google.protobuf.ByteString.CodedBuilder; @@ -1186,9 +1187,7 @@ @Override public void mergeFrom(T message, T other) { checkMutable(message); - if (other == null) { - throw new NullPointerException(); - } + checkNotNull(other); for (int i = 0; i < buffer.length; i += INTS_PER_FIELD) { // A separate method allows for better JIT optimizations mergeSingleField(message, other, i);