Index: third_party/protobuf/java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java |
diff --git a/third_party/protobuf/java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java b/third_party/protobuf/java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java |
index 9500f905fcaf581d19b24f9e048699486e1af0ca..104f8007b878c7999fc45ea8bec43eac03065f58 100644 |
--- a/third_party/protobuf/java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java |
+++ b/third_party/protobuf/java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java |
@@ -176,6 +176,41 @@ public final class UnknownFieldSetLite { |
} |
/** |
+ * Serializes the set and writes it to {@code output} using {@code MessageSet} wire format. |
+ * |
+ * <p>For use by generated code only. |
+ */ |
+ public void writeAsMessageSetTo(CodedOutputStream output) throws IOException { |
+ for (int i = 0; i < count; i++) { |
+ int fieldNumber = WireFormat.getTagFieldNumber(tags[i]); |
+ output.writeRawMessageSetExtension(fieldNumber, (ByteString) objects[i]); |
+ } |
+ } |
+ |
+ /** |
+ * Get the number of bytes required to encode this field, including field |
+ * number, using {@code MessageSet} wire format. |
+ */ |
+ public int getSerializedSizeAsMessageSet() { |
+ int size = memoizedSerializedSize; |
+ if (size != -1) { |
+ return size; |
+ } |
+ |
+ size = 0; |
+ for (int i = 0; i < count; i++) { |
+ int tag = tags[i]; |
+ int fieldNumber = WireFormat.getTagFieldNumber(tag); |
+ size += CodedOutputStream.computeRawMessageSetExtensionSize( |
+ fieldNumber, (ByteString) objects[i]); |
+ } |
+ |
+ memoizedSerializedSize = size; |
+ |
+ return size; |
+ } |
+ |
+ /** |
* Get the number of bytes required to encode this set. |
* |
* <p>For use by generated code only. |
@@ -268,7 +303,8 @@ public final class UnknownFieldSetLite { |
} |
} |
- private void storeField(int tag, Object value) { |
+ // Package private for unsafe experimental runtime. |
+ void storeField(int tag, Object value) { |
ensureCapacity(); |
tags[count] = tag; |