Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: third_party/mojo/src/mojo/public/go/bindings/encoder.go

Issue 954643002: Update mojo sdk to rev 3d23dae011859a2aae49f1d1adde705c8e85d819 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use run_renderer_in_process() Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/mojo/src/mojo/public/go/bindings/encoder.go
diff --git a/third_party/mojo/src/mojo/public/go/bindings/encoder.go b/third_party/mojo/src/mojo/public/go/bindings/encoder.go
index 5ea1a50cdfcca72257289161eb1ebc2a22c43cc0..542cc21c999561bd13793986e24eeac967a8cc7e 100644
--- a/third_party/mojo/src/mojo/public/go/bindings/encoder.go
+++ b/third_party/mojo/src/mojo/public/go/bindings/encoder.go
@@ -74,10 +74,10 @@ func ensureElementBitSizeAndCapacity(state *encodingState, bitSize uint32) error
if state == nil {
return fmt.Errorf("empty state stack")
}
- if state.elementBitSize > 0 && state.elementBitSize != bitSize {
+ if state.elementBitSize != 0 && state.elementBitSize != bitSize {
return fmt.Errorf("unexpected element bit size: expected %d, but got %d", state.elementBitSize, bitSize)
}
- if state.elementsProcessed >= state.elements {
+ if state.elementBitSize != 0 && state.elementsProcessed >= state.elements {
return fmt.Errorf("can't process more than elements defined in header(%d)", state.elements)
}
byteSize := bytesForBits(uint64(state.bitOffset + bitSize))
@@ -112,11 +112,15 @@ func (e *Encoder) popState() {
func (e *Encoder) pushState(header DataHeader, elementBitSize uint32) {
oldEnd := e.end
e.claimData(align(int(header.Size), defaultAlignment))
+ elements := uint32(0)
+ if elementBitSize != 0 {
+ elements = header.ElementsOrVersion
+ }
e.stateStack = append(e.stateStack, encodingState{
offset: oldEnd,
limit: e.end,
elementBitSize: elementBitSize,
- elements: header.Elements,
+ elements: elements,
})
e.writeDataHeader(header)
}
@@ -153,15 +157,15 @@ func (e *Encoder) StartMap() {
// StartStruct starts encoding a struct and writes its data header.
// Note: it doesn't write a pointer to the encoded struct.
// Call |Finish()| after writing all fields.
-func (e *Encoder) StartStruct(size, numFields uint32) {
+func (e *Encoder) StartStruct(size, version uint32) {
dataSize := dataHeaderSize + int(size)
- header := DataHeader{uint32(dataSize), numFields}
+ header := DataHeader{uint32(dataSize), version}
e.pushState(header, 0)
}
func (e *Encoder) writeDataHeader(header DataHeader) {
binary.LittleEndian.PutUint32(e.buf[e.state().offset:], header.Size)
- binary.LittleEndian.PutUint32(e.buf[e.state().offset+4:], header.Elements)
+ binary.LittleEndian.PutUint32(e.buf[e.state().offset+4:], header.ElementsOrVersion)
e.state().offset += 8
}
@@ -171,7 +175,7 @@ func (e *Encoder) Finish() error {
if e.state() == nil {
return fmt.Errorf("state stack is empty")
}
- if e.state().elementsProcessed != e.state().elements {
+ if e.state().elementBitSize != 0 && e.state().elementsProcessed != e.state().elements {
return fmt.Errorf("unexpected number of elements written: defined in header %d, but written %d", e.state().elements, e.state().elementsProcessed)
}
e.popState()
« no previous file with comments | « third_party/mojo/src/mojo/public/go/bindings/decoder.go ('k') | third_party/mojo/src/mojo/public/go/bindings/interface.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698