Fix the tag size in token of ProtoOutputStream.cpp, the java version has
the correct tag size computed.
Bug: 72755317
Test: incident -p A 3005 | aprotoc --decode_raw
Change-Id: I0275dbecb566101b562b649c2ae3d58fbfb9188b
diff --git a/libs/protoutil/src/ProtoOutputStream.cpp b/libs/protoutil/src/ProtoOutputStream.cpp
index 1904d40..f24abae 100644
--- a/libs/protoutil/src/ProtoOutputStream.cpp
+++ b/libs/protoutil/src/ProtoOutputStream.cpp
@@ -249,15 +249,15 @@
}
uint32_t id = (uint32_t)fieldId;
+ size_t prevPos = mBuffer.wp()->pos();
mBuffer.writeHeader(id, WIRE_TYPE_LENGTH_DELIMITED);
-
size_t sizePos = mBuffer.wp()->pos();
mDepth++;
mObjectId++;
mBuffer.writeRawFixed64(mExpectedObjectToken); // push previous token into stack.
- mExpectedObjectToken = makeToken(get_varint_size(id),
+ mExpectedObjectToken = makeToken(sizePos - prevPos,
(bool)(fieldId & FIELD_COUNT_REPEATED), mDepth, mObjectId, sizePos);
return mExpectedObjectToken;
}