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

Side by Side Diff: third_party/mojo/src/mojo/public/go/bindings/decoder.go

Issue 1157843002: Update mojo sdk to rev 1dc8a9a5db73d3718d99917fadf31f5fb2ebad4f (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package bindings 5 package bindings
6 6
7 import ( 7 import (
8 "encoding/binary" 8 "encoding/binary"
9 "fmt" 9 "fmt"
10 "math" 10 "math"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 return DataHeader{}, &ValidationError{UnexpectedStructHeader, 142 return DataHeader{}, &ValidationError{UnexpectedStructHeader,
143 fmt.Sprintf("data header size(%d) should be at least %d" , header.Size, dataHeaderSize), 143 fmt.Sprintf("data header size(%d) should be at least %d" , header.Size, dataHeaderSize),
144 } 144 }
145 } 145 }
146 if err := d.pushState(header, 0); err != nil { 146 if err := d.pushState(header, 0); err != nil {
147 return DataHeader{}, err 147 return DataHeader{}, err
148 } 148 }
149 return header, nil 149 return header, nil
150 } 150 }
151 151
152 // StartUnion starts decoding a union and reads its header.
153 // Returns the read data header. The caller should check if it is valid.
154 // Note: it doesn't read the data field.
155 func (d *Decoder) StartUnion() (DataHeader, error) {
156 header, err := d.readDataHeader()
157 if err != nil {
158 return DataHeader{}, err
159 }
160
161 if err := d.pushState(header, 0); err != nil {
162 return DataHeader{}, err
163 }
164 return header, nil
165 }
166
152 func (d *Decoder) readDataHeader() (DataHeader, error) { 167 func (d *Decoder) readDataHeader() (DataHeader, error) {
153 if err := d.claimData(dataHeaderSize); err != nil { 168 if err := d.claimData(dataHeaderSize); err != nil {
154 return DataHeader{}, err 169 return DataHeader{}, err
155 } 170 }
156 oldEnd := d.end - dataHeaderSize 171 oldEnd := d.end - dataHeaderSize
157 header := DataHeader{ 172 header := DataHeader{
158 Size: binary.LittleEndian.Uint32(d.buf[oldEnd:]), 173 Size: binary.LittleEndian.Uint32(d.buf[oldEnd:]),
159 ElementsOrVersion: binary.LittleEndian.Uint32(d.buf[oldEnd+4:]), 174 ElementsOrVersion: binary.LittleEndian.Uint32(d.buf[oldEnd+4:]),
160 } 175 }
161 return header, nil 176 return header, nil
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 handle, err := d.ReadMessagePipeHandle() 394 handle, err := d.ReadMessagePipeHandle()
380 if err != nil { 395 if err != nil {
381 return nil, err 396 return nil, err
382 } 397 }
383 d.state().elementsProcessed-- 398 d.state().elementsProcessed--
384 if _, err := d.ReadUint32(); err != nil { 399 if _, err := d.ReadUint32(); err != nil {
385 return nil, err 400 return nil, err
386 } 401 }
387 return handle, nil 402 return handle, nil
388 } 403 }
OLDNEW
« no previous file with comments | « third_party/mojo/src/mojo/public/dart/src/types.dart ('k') | third_party/mojo/src/mojo/public/go/bindings/encoder.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698