diff options
author | Yi Jin <jinyithu@google.com> | 2018-02-02 14:33:20 -0800 |
---|---|---|
committer | Yi Jin <jinyithu@google.com> | 2018-02-02 14:33:20 -0800 |
commit | 295d9b1d43d47a0fec65001fe74c225bb60a957a (patch) | |
tree | 1ae27384bf34fc9e7c8eea0f949c8f0bf7b7f447 | |
parent | 7902b4a1b222cac1f60125de93a1ab30a0b7523f (diff) |
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
-rw-r--r-- | libs/protoutil/src/ProtoOutputStream.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/protoutil/src/ProtoOutputStream.cpp b/libs/protoutil/src/ProtoOutputStream.cpp index 1904d40ea67a..f24abaed2dce 100644 --- a/libs/protoutil/src/ProtoOutputStream.cpp +++ b/libs/protoutil/src/ProtoOutputStream.cpp @@ -249,15 +249,15 @@ ProtoOutputStream::start(uint64_t fieldId) } 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; } |