211 lines
8.8 KiB
Java
211 lines
8.8 KiB
Java
|
package io.grpc.protobuf.lite;
|
||
|
|
||
|
import com.google.common.base.Preconditions;
|
||
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||
|
import io.grpc.Metadata;
|
||
|
import io.grpc.MethodDescriptor;
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStream;
|
||
|
import java.io.OutputStream;
|
||
|
import java.lang.ref.Reference;
|
||
|
import o.InterfaceC16581pUl;
|
||
|
import o.XgX;
|
||
|
import o.ZjA;
|
||
|
import o.cKE;
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
public final class ProtoLiteUtils {
|
||
|
private static final int BUF_SIZE = 8192;
|
||
|
static final int DEFAULT_MAX_MESSAGE_SIZE = 4194304;
|
||
|
static volatile ZjA globalRegistry = ZjA.e();
|
||
|
|
||
|
public static void setExtensionRegistry(ZjA zjA) {
|
||
|
globalRegistry = (ZjA) Preconditions.checkNotNull(zjA, "newRegistry");
|
||
|
}
|
||
|
|
||
|
public static <T extends InterfaceC16581pUl> MethodDescriptor.Marshaller<T> marshaller(T t) {
|
||
|
return new MessageMarshaller(t);
|
||
|
}
|
||
|
|
||
|
public static <T extends InterfaceC16581pUl> Metadata.BinaryMarshaller<T> metadataMarshaller(T t) {
|
||
|
return new MetadataMarshaller(t);
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public static long copy(InputStream inputStream, OutputStream outputStream) throws IOException {
|
||
|
Preconditions.checkNotNull(inputStream, "inputStream cannot be null!");
|
||
|
Preconditions.checkNotNull(outputStream, "outputStream cannot be null!");
|
||
|
byte[] bArr = new byte[8192];
|
||
|
long j = 0;
|
||
|
while (true) {
|
||
|
int read = inputStream.read(bArr);
|
||
|
if (read == -1) {
|
||
|
return j;
|
||
|
}
|
||
|
outputStream.write(bArr, 0, read);
|
||
|
j += read;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private ProtoLiteUtils() {
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
static final class MessageMarshaller<T extends InterfaceC16581pUl> implements MethodDescriptor.PrototypeMarshaller<T> {
|
||
|
private static final ThreadLocal<Reference<byte[]>> bufs = new ThreadLocal<>();
|
||
|
private final T defaultInstance;
|
||
|
private final XgX<T> parser;
|
||
|
|
||
|
MessageMarshaller(T t) {
|
||
|
this.defaultInstance = t;
|
||
|
this.parser = (XgX<T>) t.getParserForType();
|
||
|
}
|
||
|
|
||
|
@Override // io.grpc.MethodDescriptor.ReflectableMarshaller
|
||
|
public final Class<T> getMessageClass() {
|
||
|
return (Class<T>) this.defaultInstance.getClass();
|
||
|
}
|
||
|
|
||
|
@Override // io.grpc.MethodDescriptor.Marshaller
|
||
|
public final InputStream stream(T t) {
|
||
|
return new ProtoInputStream(t, this.parser);
|
||
|
}
|
||
|
|
||
|
/* JADX WARN: Removed duplicated region for block: B:15:0x0089 */
|
||
|
@Override // io.grpc.MethodDescriptor.Marshaller
|
||
|
/*
|
||
|
Code decompiled incorrectly, please refer to instructions dump.
|
||
|
To view partially-correct add '--show-bad-code' argument
|
||
|
*/
|
||
|
public final T parse(java.io.InputStream r6) {
|
||
|
/*
|
||
|
r5 = this;
|
||
|
boolean r0 = r6 instanceof io.grpc.protobuf.lite.ProtoInputStream
|
||
|
if (r0 == 0) goto L17
|
||
|
r0 = r6
|
||
|
io.grpc.protobuf.lite.ProtoInputStream r0 = (io.grpc.protobuf.lite.ProtoInputStream) r0
|
||
|
o.XgX r0 = r0.parser()
|
||
|
o.XgX<T extends o.pUl> r1 = r5.parser
|
||
|
if (r0 != r1) goto L17
|
||
|
r0 = r6
|
||
|
io.grpc.protobuf.lite.ProtoInputStream r0 = (io.grpc.protobuf.lite.ProtoInputStream) r0 // Catch: java.lang.IllegalStateException -> L17
|
||
|
o.pUl r6 = r0.message() // Catch: java.lang.IllegalStateException -> L17
|
||
|
return r6
|
||
|
L17:
|
||
|
boolean r0 = r6 instanceof io.grpc.KnownLength
|
||
|
if (r0 == 0) goto L86
|
||
|
int r0 = r6.available() // Catch: java.io.IOException -> L7f
|
||
|
if (r0 <= 0) goto L7a
|
||
|
r1 = 4194304(0x400000, float:5.877472E-39)
|
||
|
if (r0 > r1) goto L7a
|
||
|
java.lang.ThreadLocal<java.lang.ref.Reference<byte[]>> r1 = io.grpc.protobuf.lite.ProtoLiteUtils.MessageMarshaller.bufs // Catch: java.io.IOException -> L7f
|
||
|
java.lang.Object r2 = r1.get() // Catch: java.io.IOException -> L7f
|
||
|
java.lang.ref.Reference r2 = (java.lang.ref.Reference) r2 // Catch: java.io.IOException -> L7f
|
||
|
if (r2 == 0) goto L3a
|
||
|
java.lang.Object r2 = r2.get() // Catch: java.io.IOException -> L7f
|
||
|
byte[] r2 = (byte[]) r2 // Catch: java.io.IOException -> L7f
|
||
|
if (r2 == 0) goto L3a
|
||
|
int r3 = r2.length // Catch: java.io.IOException -> L7f
|
||
|
if (r3 >= r0) goto L44
|
||
|
L3a:
|
||
|
byte[] r2 = new byte[r0] // Catch: java.io.IOException -> L7f
|
||
|
java.lang.ref.WeakReference r3 = new java.lang.ref.WeakReference // Catch: java.io.IOException -> L7f
|
||
|
r3.<init>(r2) // Catch: java.io.IOException -> L7f
|
||
|
r1.set(r3) // Catch: java.io.IOException -> L7f
|
||
|
L44:
|
||
|
r1 = r0
|
||
|
L45:
|
||
|
if (r1 <= 0) goto L52
|
||
|
int r3 = r0 - r1
|
||
|
int r3 = r6.read(r2, r3, r1) // Catch: java.io.IOException -> L7f
|
||
|
r4 = -1
|
||
|
if (r3 == r4) goto L52
|
||
|
int r1 = r1 - r3
|
||
|
goto L45
|
||
|
L52:
|
||
|
if (r1 != 0) goto L5a
|
||
|
r1 = 0
|
||
|
o.cKE r0 = o.cKE.a(r2, r1, r0) // Catch: java.io.IOException -> L7f
|
||
|
goto L87
|
||
|
L5a:
|
||
|
java.lang.RuntimeException r6 = new java.lang.RuntimeException // Catch: java.io.IOException -> L7f
|
||
|
java.lang.StringBuilder r2 = new java.lang.StringBuilder // Catch: java.io.IOException -> L7f
|
||
|
r2.<init>() // Catch: java.io.IOException -> L7f
|
||
|
java.lang.String r3 = "size inaccurate: "
|
||
|
r2.append(r3) // Catch: java.io.IOException -> L7f
|
||
|
r2.append(r0) // Catch: java.io.IOException -> L7f
|
||
|
java.lang.String r3 = " != "
|
||
|
r2.append(r3) // Catch: java.io.IOException -> L7f
|
||
|
int r0 = r0 - r1
|
||
|
r2.append(r0) // Catch: java.io.IOException -> L7f
|
||
|
java.lang.String r0 = r2.toString() // Catch: java.io.IOException -> L7f
|
||
|
r6.<init>(r0) // Catch: java.io.IOException -> L7f
|
||
|
throw r6 // Catch: java.io.IOException -> L7f
|
||
|
L7a:
|
||
|
if (r0 != 0) goto L86
|
||
|
T extends o.pUl r6 = r5.defaultInstance // Catch: java.io.IOException -> L7f
|
||
|
return r6
|
||
|
L7f:
|
||
|
r6 = move-exception
|
||
|
java.lang.RuntimeException r0 = new java.lang.RuntimeException
|
||
|
r0.<init>(r6)
|
||
|
throw r0
|
||
|
L86:
|
||
|
r0 = 0
|
||
|
L87:
|
||
|
if (r0 != 0) goto L8d
|
||
|
o.cKE r0 = o.cKE.e(r6)
|
||
|
L8d:
|
||
|
int r6 = r0.d
|
||
|
r6 = 2147483647(0x7fffffff, float:NaN)
|
||
|
r0.d = r6
|
||
|
o.pUl r6 = r5.parseFrom(r0) // Catch: com.google.protobuf.InvalidProtocolBufferException -> L99
|
||
|
return r6
|
||
|
L99:
|
||
|
r6 = move-exception
|
||
|
io.grpc.Status r0 = io.grpc.Status.INTERNAL
|
||
|
java.lang.String r1 = "Invalid protobuf byte sequence"
|
||
|
io.grpc.Status r0 = r0.withDescription(r1)
|
||
|
io.grpc.Status r6 = r0.withCause(r6)
|
||
|
io.grpc.StatusRuntimeException r6 = r6.asRuntimeException()
|
||
|
throw r6
|
||
|
*/
|
||
|
throw new UnsupportedOperationException("Method not decompiled: io.grpc.protobuf.lite.ProtoLiteUtils.MessageMarshaller.parse(java.io.InputStream):o.pUl");
|
||
|
}
|
||
|
|
||
|
private T parseFrom(cKE cke) throws InvalidProtocolBufferException {
|
||
|
T d = this.parser.d(cke, ProtoLiteUtils.globalRegistry);
|
||
|
cke.e();
|
||
|
return d;
|
||
|
}
|
||
|
|
||
|
@Override // io.grpc.MethodDescriptor.PrototypeMarshaller
|
||
|
public final T getMessagePrototype() {
|
||
|
return this.defaultInstance;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
static final class MetadataMarshaller<T extends InterfaceC16581pUl> implements Metadata.BinaryMarshaller<T> {
|
||
|
private final T defaultInstance;
|
||
|
|
||
|
MetadataMarshaller(T t) {
|
||
|
this.defaultInstance = t;
|
||
|
}
|
||
|
|
||
|
@Override // io.grpc.Metadata.BinaryMarshaller
|
||
|
public final byte[] toBytes(T t) {
|
||
|
return t.toByteArray();
|
||
|
}
|
||
|
|
||
|
@Override // io.grpc.Metadata.BinaryMarshaller
|
||
|
public final T parseBytes(byte[] bArr) {
|
||
|
try {
|
||
|
return (T) this.defaultInstance.getParserForType().a(bArr, ProtoLiteUtils.globalRegistry);
|
||
|
} catch (InvalidProtocolBufferException e) {
|
||
|
throw new IllegalArgumentException(e);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|